Это хороший способ проверить, соответствует ли значение поля null
?
if($('#person_data[document_type]').value() != 'NULL'){}
Или есть способ лучше?
Это хороший способ проверить, соответствует ли значение поля null
?
if($('#person_data[document_type]').value() != '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 ) {...}
}
The value of a field can not be null, it's always a string value.
это не совсем так. У меня select
нет содержания options
. Когда я .val()
это делаю, он возвращается null
. Jquery 1.7.2
select
без option
элементов - это не то, что у вас обычно есть. Это бесполезно.
<select>
может содержать возможные варианты для вашего пользователя, чьи <option>
s будут получены в результате какой-то проверки.
select
, оно начнется со null
значения, поскольку выбран параметр «отключено». stackoverflow.com/questions/5805059/…
Предполагая
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
или undefined
или ''
или 0
, для моей простой проверки я использую это if.
( $('#id').val() == '0' || $('#id').val() == '' || $('#id').val() == 'undefined' || $('#id').val() == null )
Примечание : null
! ='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;
}
},
Используйте для этого помощников.
isStringNullOrEmpty
, isStringFalsey
и, таким образом, 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" />