È un buon modo per verificare se il valore di un campo è null
?
if($('#person_data[document_type]').value() != 'NULL'){}
O c'è un modo migliore?
È un buon modo per verificare se il valore di un campo è null
?
if($('#person_data[document_type]').value() != 'NULL'){}
O c'è un modo migliore?
Risposte:
Il valore di un campo non può essere nullo, è sempre un valore stringa.
Il codice verificherà se il valore della stringa è "NULL". Vuoi invece controllare se è una stringa vuota:
if ($('#person_data[document_type]').val() != ''){}
o:
if ($('#person_data[document_type]').val().length != 0){}
Se vuoi controllare se l'elemento esiste, dovresti farlo prima di chiamare val
:
var $d = $('#person_data[document_type]');
if ($d.length != 0) {
if ($d.val().length != 0 ) {...}
}
The value of a field can not be null, it's always a string value.
questo non è del tutto vero. Ho un select
no contenente options
. Quando eseguo .val()
questo ritorna null
. Jquery 1.7.2
select
senza option
elementi non è qualcosa che normalmente hai. È abbastanza inutile.
<select>
può contenere possibili opzioni per il tuo utente i cui messaggi <option>
verranno da una sorta di convalida.
select
, inizierà con un null
valore perché è selezionata un'opzione "disabilitata". stackoverflow.com/questions/5805059/...
Supponendo
var val = $('#person_data[document_type]').value();
hai questi casi:
val === 'NULL'; // actual value is a string with content "NULL"
val === ''; // actual value is an empty string
val === null; // actual value is null (absence of any value)
Quindi, usa ciò di cui hai bisogno.
dipende dal tipo di informazioni che stai passando al condizionale ..
a volte il tuo risultato sarà null
o undefined
o ''
o 0
, per mia semplice convalida lo uso se.
( $('#id').val() == '0' || $('#id').val() == '' || $('#id').val() == 'undefined' || $('#id').val() == null )
NOTA : null
! ='null'
_helpers: {
//Check is string null or empty
isStringNullOrEmpty: function (val) {
switch (val) {
case "":
case 0:
case "0":
case null:
case false:
case undefined:
case typeof this === 'undefined':
return true;
default: return false;
}
},
//Check is string null or whitespace
isStringNullOrWhiteSpace: function (val) {
return this.isStringNullOrEmpty(val) || val.replace(/\s/g, "") === '';
},
//If string is null or empty then return Null or else original value
nullIfStringNullOrEmpty: function (val) {
if (this.isStringNullOrEmpty(val)) {
return null;
}
return val;
}
},
Utilizza questi aiutanti per raggiungere questo obiettivo.
isStringNullOrEmpty
è isStringFalsey
e quindi return !val;
funzionerebbe
jquery fornisce val()
funzioni e not value()
. Puoi controllare la stringa vuota usando jquery
if($('#person_data[document_type]').val() != ''){}
Provare
if( this["person_data[document_type]"].value != '') {
console.log('not empty');
}
<input id="person_data[document_type]" value="test" />