jQuery: sprawdzanie, czy wartość pola jest null (pusta)


Odpowiedzi:


170

Wartość pola nie może być pusta, zawsze jest to ciąg znaków.

Kod sprawdzi, czy wartość ciągu to „NULL”. Chcesz sprawdzić, czy jest to pusty ciąg:

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

lub:

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

Jeśli chcesz sprawdzić, czy element w ogóle istnieje, powinieneś to zrobić przed wywołaniem 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.to nie jest do końca prawdą. Mam selectzawierający nie options. Kiedy .val()na tym występuję, to wraca null. Jquery 1.7.2
Liam,

@Pispirulito: Nie sądzę i nie sądzę, że zostanie to zmienione. A selectbez żadnych optionelementów nie jest czymś, co zwykle masz. To całkiem bezużyteczne.
Guffa

@Guffa błagam o różnice, puste <select>może zawierać możliwe opcje dla twojego użytkownika, których wartości <option>będą pochodzić z jakiegoś rodzaju walidacji.
Malcolm Salvador

Jeśli użyjesz poniższego rozwiązania, aby zapewnić symbol zastępczy w swoim select, zacznie się on od nullwartości, ponieważ wybrana jest opcja „wyłączona”. stackoverflow.com/questions/5805059/…
Sygmoral

37

Chciałbym również przyciąć pole wejściowe, ponieważ spacja może wyglądać jak wypełniona

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

}

14

Zarozumiały

var val = $('#person_data[document_type]').value();

masz te przypadki:

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)

Więc używaj tego, czego potrzebujesz.


11

to zależy od tego, jakie informacje przekazujesz warunkowi.

czasami wynikiem będzie nulllub undefinedlub ''lub 0, do mojej prostej weryfikacji używam tego if.

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

UWAGA : 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;
        }
    },

Skorzystaj z tych pomocników, aby to osiągnąć.


wydaje się, że to prawie isStringNullOrEmptyjest isStringFalseyi dlatego return !val;zadziała
Mark Schultheiss

0

jquery zapewnia val()funkcje i not value(). Możesz sprawdzić pusty ciąg za pomocą jquery

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

0

Próbować

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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.