2011-11-11 5 views
6

Sto cercando di capire come fare qualcosa se una certa casella di testo è non vuoto (cioè contenere qualcosa, potrebbe essere qualsiasi cosa)jquery se l'immissione di testo * non * uguale vuoto

Questo è il mio codice (che sembra non funzionare)

if (!($('#edit-sPostalCode').attr('val',''))) { 
    stuff here 
} 

Cosa mi è sfuggito?

+0

non esiste un elemento HTML che ha un attributo 'val'. Penso che tu intenda il metodo jQuery '.val()'. –

risposta

11
if ($('#edit-sPostalCode').val() != '') { 
    stuff here 
} 

$('#edit-sPostalCode').attr('val','') sarà effettivamente creare un attributo della casella di input con un valore di '' e sarà poi restituire un oggetto jQuery.

Pronunciare !($('#edit-sPostalCode').attr('val','')) annullerà quindi l'oggetto jQuery. Come un'istanza di un oggetto è truthy in JS il risultato di questa espressione sarà sempre false.

+1

Non imposterà il valore, aggiungerà un nuovo attributo con il nome 'val'. Ma a parte questo, hai ragione. –

+0

@Felix Oh sì, certo! Modificherò –

0
if (!($('#edit-sPostalCode').val() === '')) { 
    stuff here 
} 
2

Sei a conoscenza del metodo .val?

if ($('#edit-sPostalCode').val() !== '') { 

Anche se si dovrebbe $.trim il valore se si considera gli spazi come equivalente a nulla:

if ($.trim($('#edit-sPostalCode').val()) !== '') { 
+0

è! == un operatore javascript? Lo so === è –

+0

@NicholasMurray: Sì è: http://ecma262-5.com/ELS5_HTML.htm#Section_11.9.5 –

+0

Basta cercarlo su Google - è questo il migliore per questo confronto? –

Problemi correlati