119 votes

jQuery : vérifier si la valeur d'un champ est nulle (vide)

Est-ce une bonne façon 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 ?

1 votes

Quel type d'élément est #person_data ? et que considérez-vous comme une valeur NULL ?

0 votes

194voto

Guffa Points 308133

La valeur d'un champ ne peut pas être nulle, il s'agit toujours d'une valeur de type 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 ) {...}
}

34 votes

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 ne contenant pas options . Quand je fais .val() sur ce point, il retourne null . Jquery 1.7.2

0 votes

@Pispirulito : Je ne pense pas, et je ne pense pas que cela sera changé. A select sans aucune option Les éléments ne sont pas quelque chose que vous avez normalement. C'est plutôt inutile.

1 votes

@Guffa ne sont pas d'accord, un vide <select> peut contenir des options possibles pour votre utilisateur dont <option> proviendront d'une sorte de validation.

38voto

Flipke Points 659

Je couperais aussi le champ de saisie, car un espace pourrait donner l'impression qu'il est rempli.

if ($.trim($('#person_data[document_type]').val()) != '')
{

}

17voto

darioo Points 23903

En supposant que

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)

Donc, utilisez ce dont vous avez besoin.

15voto

Cela dépend du type d'information que vous transmettez au conditionnel

parfois votre résultat sera null o undefined o '' o 0 pour ma validation simple, j'utilise ce si.

( $('#id').val() == '0' || $('#id').val() == '' || $('#id').val() == 'undefined' || $('#id').val() == null )

NOTE : null != 'null'

8voto

Nilesh_Moradiya Points 87
_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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X