jQuery: перевірка, чи значення поля є нульовим (порожнім)


Відповіді:


170

Значення поля не може бути нульовим, це завжди рядкове значення.

Код перевірить, чи є значенням рядка рядок "NULL". Ви хочете перевірити, чи це порожній рядок:

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

або:

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

Якщо ви хочете перевірити, чи існує елемент взагалі, слід зробити це перед тим, як викликати 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.це не зовсім вірно. У мене є selectвміст, що не містить options. Коли я виконую .val()на цьому, вона повертається null. Jquery 1.7.2
Ліам

@Pispirulito: Я так не думаю, і не думаю, що це буде змінено. A selectбез будь-яких optionелементів - це не те, що у вас зазвичай. Це досить марно.
Гуффа

@Guffa просимо відрізнятись, порожній <select>може містити можливі параметри для вашого користувача, чий результат <option>буде отриманий з певної перевірки.
Малькольм Сальвадор

Якщо ви використовуєте наступне рішення для надання заповнювача у вашому select, воно почне починатися зі nullзначення, оскільки вибрано параметр "вимкнено". stackoverflow.com/questions/5805059 / ...
Sygmoral

37

Я б також обрізав поле введення, оскільки пробіл міг би зробити його заповненим

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

}

14

Припускаючи

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

у вас є такі випадки:

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)

Отже, використовуйте те, що вам потрібно.


11

це залежить від того, яку інформацію ви передаєте до умовної.

Іноді ваш результат буде nullабо undefinedабо ''або 0, для моєї простої перевірки я використовую це , якщо.

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

Примітка : 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;
        }
    },

Використовуйте цих помічників для досягнення цього.


це майже схоже на те, що isStringNullOrEmptyє, isStringFalseyі таким чином return !val;спрацювало б
Марк

0

jquery забезпечує val()функцію та not value(). Ви можете перевірити порожній рядок за допомогою jquery

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.