Cómo verificar el valor ‘indefinido’ en jQuery

4 minutos de lectura

avatar de usuario
Gaurav

Posible duplicado:

Detectar una propiedad de objeto indefinida en JavaScript
javascript indefinido comparar

Cómo podemos agregar un cheque para una variable indefinida, como:

function A(val) {
  if (val == undefined) 
    // do this
  else
    // do this
}

  • Posible duplicado de Detectar una propiedad de objeto indefinida

    – Corazón

    14 de julio de 2018 a las 13:54

avatar de usuario
Visión

La biblioteca JQuery se desarrolló específicamente para simplificar y unificar ciertas funciones de JavaScript.

Sin embargo, si necesita verificar una variable contra undefined valor, no hay necesidad de inventar ningún método especial, ya que JavaScript tiene un typeof operador, que es simple, rápido y multiplataforma:

if (typeof value === "undefined") {
    // ...
}

Devuelve una cadena que indica el tipo de variable u otro operando no evaluado. La principal ventaja de este método, en comparación con if (value === undefined) { ... }es eso typeof nunca generará una excepción en caso de que sea variable value no existe.

  • @nahum jQuery es una biblioteca de JavaScript. Este no es un lenguaje de programación diferente.

    – Visión

    31 de mayo de 2013 a las 17:47


  • lol omg realmente estas comentando esto?? Sé que es el mismo hombre. Pero supongo que quiere saber si existe algún tipo de método en jQuery como $.isUndefined(Object); y devolver el valor verdadero o falso. typeof es solo javascript sin ningún marco.

    – ncúbica

    31 de mayo de 2013 a las 17:49

  • Uno de mis problemas era: si estás haciendo algo como esto ("#myId")asegúrese de lo que realmente necesita: a. typeof ("#myId")=== "undefined" b. O: typeof ("#myId").val() === "undefined"

    – Alberici

    26 de diciembre de 2014 a las 22:54


  • @Alberici ("#myId") no es otra cosa que un cuerda constante. Siempre estará definido y tendrá un tipo de "string". Si te refieres a un verdadero objeto jQuery creado con $("#myId")siempre se definirá como "object" (si tiene jQuery vinculado correctamente). Existencia de un elemento DOM con ID myId se puede evaluar con if ($("#myId").length > 0) { ... }mientras que verificar si su valor no está vacío se puede hacer con if ($("#myId").val()) { ... }. Ninguna de estas cláusulas se relaciona realmente con el tema de esta pregunta.

    – Visión

    27 de diciembre de 2014 a las 1:00

  • @ user3284463 Como se menciona en la respuesta, simple value === undefined generará una excepción si value variable no existe. Así que depende completamente de ti qué usar en la vida real.

    – Visión

    27 de junio de 2016 a las 11:59

En este caso, puede utilizar un === undefined comparación: if(val === undefined)

Esto funciona porque val siempre existe (es un argumento de función).

Si quisiera probar una variable arbitraria que no es un argumento, es decir, podría no estar definida en absoluto, tendría que usar if(typeof val === 'undefined') para evitar una excepción en caso val no existía

avatar de usuario
Jignesh Rajput

Tenga en cuenta que typeof siempre devuelve una cadena y no genera un error si la variable no existe en absoluto.

function A(val){
  if(typeof(val)  === "undefined") 
    //do this
  else
   //do this
}

  • Para la comparación de cadenas, creo que necesitamos usar === en vez de ==

    – Sreeram

    18 mayo 2012 a las 13:20

  • @Sreeram, ambos hacen una comparación, solo que de diferentes maneras… esto funcionará bien

    – Raddrick

    18 mayo 2012 a las 13:22


Sé que llegué tarde a responder la función, pero jquery tiene una función de compilación para hacer esto

if(jQuery.type(val) === "undefined"){
    //Some code goes here
}

Consulte el documento jquery API de jquery.type https://api.jquery.com/jQuery.type/ por lo mismo.

Puede usar la técnica abreviada para verificar si no está definido o es nulo

 function A(val)
 {
   if(val || "") 
   //do this
 else
 //do this
 }

Espero que esto te ayudará

avatar de usuario
Sridhar K.

cuando estoy probando”typeof obj === undefined“, la alert(typeof obj) regresando object, aunque obj no está definido. Dado que obj es un tipo de Object esta regresando Objectno undefined.

Entonces, después de horas de prueba, opté por la siguiente técnica.

if(document.getElementById(obj) !== null){
//do...
}else{
//do...
}

No estoy seguro de por qué la primera técnica no funcionó. Pero terminé mi trabajo usando esto.

avatar de usuario
Yoosaf Abdula

Si tiene los nombres del elemento y no la identificación, podemos lograr la verificación indefinida en todos los elementos de texto (por ejemplo) como se muestra a continuación y llenarlos con un valor predeterminado, digamos 0.0:

var aFieldsCannotBeNull=['ast_chkacc_bwr','ast_savacc_bwr'];
 jQuery.each(aFieldsCannotBeNull,function(nShowIndex,sShowKey) {
   var $_oField = jQuery("input[name=""+sShowKey+""]");
   if($_oField.val().trim().length === 0){
       $_oField.val('0.0')
    }
  })

¿Ha sido útil esta solución?