Хороший ли это способ проверить, является ли значение поля null
?
if($('#person_data[document_type]').value() != 'NULL'){}
Или есть лучший способ?
Значение поля не может быть null, это всегда строковое значение.
Код будет проверять, является ли строковое значение строкой "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 ) {...}
}
Я бы также обрезал поле ввода, потому что пробел может привести к тому, что оно будет выглядеть как заполненное
if ($.trim($('#person_data[document_type]').val()) != '')
{
}
Предполагая, что
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)
Так что, используйте то, что вам нужно.
это зависит от того, какую информацию вы передавили на условный..
иногда ваш результат будет равен null
или не определено
или''
или 0
, на мой простой проверки я использую это, если.
( $('#id').val() == '0' || $('#id').val() == '' || $('#id').val() == 'undefined' || $('#id').val() == 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;
}
},
Использовать этот помощниками для достижения этой цели.
jquery предоставляет функции val()
и not value()
. Вы можете проверить пустую строку с помощью jquery
if($('#person_data[document_type]').val() != ''){}
Попробовать
в
if( this["person_data[document_type]"].value != '') {
console.log('not empty');
}
<input id="person_data[document_type]" value="test" />
в