jQuery: verifica se il valore di un campo è nullo (vuoto)


Risposte:


170

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 ) {...}
}

31
The value of a field can not be null, it's always a string value.questo non è del tutto vero. Ho un selectno contenente options. Quando eseguo .val()questo ritorna null. Jquery 1.7.2
Liam

@Pispirulito: Non credo, e non credo che verrà cambiato. Un selectsenza optionelementi non è qualcosa che normalmente hai. È abbastanza inutile.
Guffa

@Guffa supplica di differire, un vuoto <select>può contenere possibili opzioni per il tuo utente i cui messaggi <option>verranno da una sorta di convalida.
Malcolm Salvador

Se utilizzi la seguente soluzione per fornire un segnaposto nel tuo select, inizierà con un nullvalore perché è selezionata un'opzione "disabilitata". stackoverflow.com/questions/5805059/...
Sygmoral

37

Taglierei anche il campo di input, perché uno spazio potrebbe farlo sembrare pieno

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

}

14

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.


11

dipende dal tipo di informazioni che stai passando al condizionale ..

a volte il tuo risultato sarà nullo undefinedo ''o 0, per mia semplice convalida lo uso se.

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

NOTA : null! ='null'


6
_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.


questo sembra quasi come isStringNullOrEmptyè isStringFalseye quindi return !val;funzionerebbe
Mark Schultheiss

0

jquery fornisce val()funzioni e not value(). Puoi controllare la stringa vuota usando jquery

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

0

Provare

if( this["person_data[document_type]"].value != '') { 
  console.log('not empty');
}
<input id="person_data[document_type]" value="test" />

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.