jQuery: comprobar si el valor de un campo es nulo (vacío)


Respuestas:


170

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 ) {...}
}

31
The value of a field can not be null, it's always a string value.esto no es del todo cierto. Tengo un selectno conteniendo options. Cuando actúo .val()en esto, vuelve null. Jquery 1.7.2
Liam

@Pispirulito: No lo creo y no creo que vaya a cambiar. A selectsin ningún optionelemento no es algo que tenga normalmente. Es bastante inútil.
Guffa

@Guffa ruega diferir, un vacío <select>puede contener posibles opciones para su usuario cuyos <option>s provendrán de algún tipo de validación.
Malcolm Salvador

Si usa la siguiente solución para proporcionar un marcador de posición en su select, comenzará con un nullvalor porque se selecciona una opción 'deshabilitada'. stackoverflow.com/questions/5805059/…
Sygmoral

37

También recortaría el campo de entrada, porque un espacio podría hacer que parezca lleno

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

}

14

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.


11

eso depende del tipo de información que le esté pasando al condicional.

a veces su resultado será nullo undefinedo ''o 0, para mi simple validación, uso esto si.

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

NOTA : 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;
        }
    },

Utilice estos ayudantes para lograrlo.


esto casi parece que isStringNullOrEmptyes isStringFalseypor lo que return !val;funcionaría
Marcos Schultheiss

0

jquery proporciona val()función y not value(). Puede verificar la cadena vacía usando jquery

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

0

Tratar

if( this["person_data[document_type]"].value != '') { 
  console.log('not empty');
}
<input id="person_data[document_type]" value="test" />

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.