Essa é uma boa maneira de verificar se o valor de um campo é null
?
if($('#person_data[document_type]').value() != 'NULL'){}
Ou há um modo melhor?
Essa é uma boa maneira de verificar se o valor de um campo é null
?
if($('#person_data[document_type]').value() != 'NULL'){}
Ou há um modo melhor?
Respostas:
O valor de um campo não pode ser nulo, é sempre um valor de string.
O código verificará se o valor da string é a string "NULL". Você deseja verificar se é uma string vazia:
if ($('#person_data[document_type]').val() != ''){}
ou:
if ($('#person_data[document_type]').val().length != 0){}
Se você quiser verificar se o elemento existe, você deve fazer isso antes de chamar 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.
isso não é totalmente verdade. Eu tenho um select
não contendo options
. Quando eu atuo .val()
nisso, ele retorna null
. Jquery 1.7.2
select
sem nenhum option
elemento não é algo que você normalmente tem. É bem inútil.
<select>
pode conter opções possíveis para seu usuário cujos <option>
s virão de algum tipo de validação.
select
, ele começará com um null
valor porque uma opção 'desativada' foi selecionada. stackoverflow.com/questions/5805059/…
Assumindo
var val = $('#person_data[document_type]').value();
você tem estes casos:
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)
Então, use o que você precisa.
isso depende de que tipo de informação você está passando para a condicional.
às vezes seu resultado será null
ou undefined
ou ''
ou 0
, para minha validação simples, eu uso este if.
( $('#id').val() == '0' || $('#id').val() == '' || $('#id').val() == 'undefined' || $('#id').val() == null )
NOTA : 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;
}
},
Utilize esses ajudantes para conseguir isso.
isStringNullOrEmpty
é isStringFalsey
e, portanto, return !val;
iria trabalhar
jquery fornece val()
funções e not value()
. Você pode verificar a string vazia usando jquery
if($('#person_data[document_type]').val() != ''){}
Experimentar
if( this["person_data[document_type]"].value != '') {
console.log('not empty');
}
<input id="person_data[document_type]" value="test" />