Est-ce un bon moyen de vérifier si la valeur d'un champ est null
?
if($('#person_data[document_type]').value() != 'NULL'){}
Ou y a-t-il un meilleur moyen?
Est-ce un bon moyen de vérifier si la valeur d'un champ est null
?
if($('#person_data[document_type]').value() != 'NULL'){}
Ou y a-t-il un meilleur moyen?
Réponses:
La valeur d'un champ ne peut pas être nulle, c'est toujours une valeur de chaîne.
Le code vérifiera si la valeur de la chaîne est la chaîne "NULL". Vous voulez vérifier si c'est une chaîne vide à la place:
if ($('#person_data[document_type]').val() != ''){}
ou:
if ($('#person_data[document_type]').val().length != 0){}
Si vous voulez vérifier si l'élément existe, vous devez le faire avant d'appeler 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.
ce n'est pas tout à fait vrai. J'ai un select
non contenant options
. Quand je joue .val()
dessus, ça revient null
. Jquery 1.7.2
select
sans aucun option
élément n'est pas quelque chose que vous avez normalement. C'est assez inutile.
<select>
peut contenir des options possibles pour votre utilisateur dont les <option>
s proviendront d'une sorte de validation.
select
, il commencera par une null
valeur car une option «désactivé» est sélectionnée. stackoverflow.com/questions/5805059/…
En supposant
var val = $('#person_data[document_type]').value();
vous avez ces cas:
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)
Alors, utilisez ce dont vous avez besoin.
cela dépend du type d'informations que vous transmettez au conditionnel.
parfois votre résultat sera null
ou undefined
ou ''
ou 0
, pour ma simple validation, j'utilise ceci si.
( $('#id').val() == '0' || $('#id').val() == '' || $('#id').val() == 'undefined' || $('#id').val() == null )
REMARQUE : 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;
}
},
Utilisez ces aides pour y parvenir.
isStringNullOrEmpty
est - isStringFalsey
et donc return !val;
travaillerait
jquery fournit la val()
fonction et not value()
. Vous pouvez vérifier une chaîne vide en utilisant jquery
if($('#person_data[document_type]').val() != ''){}
Essayer
if( this["person_data[document_type]"].value != '') {
console.log('not empty');
}
<input id="person_data[document_type]" value="test" />