¿Es esta una buena forma de comprobar si el valor de un campo es null
?
if($('#person_data[document_type]').value() != 'NULL'){}
¿O hay un mejor camino?
¿Es esta una buena forma de comprobar si el valor de un campo es null
?
if($('#person_data[document_type]').value() != 'NULL'){}
¿O hay un mejor camino?
Respuestas:
El valor de un campo no puede ser nulo, siempre es un valor de cadena.
El código comprobará si el valor de la cadena es la cadena "NULL". En su lugar, desea verificar si es una cadena vacía:
if ($('#person_data[document_type]').val() != ''){}
o:
if ($('#person_data[document_type]').val().length != 0){}
Si desea verificar si el elemento existe, debe hacerlo antes de llamar 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.
esto no es del todo cierto. Tengo un select
no conteniendo options
. Cuando actúo .val()
en esto, vuelve null
. Jquery 1.7.2
select
sin ningún option
elemento no es algo que tenga normalmente. Es bastante inútil.
<select>
puede contener posibles opciones para su usuario cuyos <option>
s provendrán de algún tipo de validación.
select
, comenzará con un null
valor porque se selecciona una opción 'deshabilitada'. stackoverflow.com/questions/5805059/…
Asumiendo
var val = $('#person_data[document_type]').value();
tienes estos 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)
Entonces, use lo que necesite.
eso depende del tipo de información que le esté pasando al condicional.
a veces su resultado será null
o undefined
o ''
o 0
, para mi simple validación, uso esto si.
( $('#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;
}
},
Utilice estos ayudantes para lograrlo.
isStringNullOrEmpty
es isStringFalsey
por lo que return !val;
funcionaría
jquery proporciona val()
función y not value()
. Puede verificar la cadena vacía usando jquery
if($('#person_data[document_type]').val() != ''){}
Tratar
if( this["person_data[document_type]"].value != '') {
console.log('not empty');
}
<input id="person_data[document_type]" value="test" />