web-dev-qa-db-fra.com

Comment vérifier la valeur 'non définie' dans jQuery

Duplicate possible:
Détection d'une propriété d'objet non définie en JavaScript
javascript undefined compare

Comment pouvons-nous ajouter une vérification pour une variable non définie, comme:

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

La bibliothèque JQuery a été développée spécifiquement pour simplifier et unifier certaines fonctionnalités JavaScript.

Toutefois, si vous devez comparer une variable à la valeur undefined, il n’est pas nécessaire d’inventer une méthode spéciale, car JavaScript possède un opérateur typeof , qui est simple, rapide et multiplate-forme:

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

Il renvoie une chaîne indiquant le type de la variable ou un autre opérande non évalué. Le principal avantage de cette méthode, par rapport à if (value === undefined) { ... }, est que typeof ne déclenchera jamais d’exception si la variable value n’existe pas.

354
VisioN

Dans ce cas, vous pouvez utiliser une comparaison === undefined: if(val === undefined)

Cela fonctionne parce que val toujours existe (c'est un argument de fonction).

Si vous souhaitez tester une variable arbitraire qui n’est pas un argument, c’est-à-dire qui pourrait ne pas être définie du tout, vous devrez utiliser if(typeof val === 'undefined') pour éviter une exception si val n’existait pas.

25
ThiefMaster

Notez que typeof renvoie toujours une chaîne et ne génère pas d'erreur si la variable n'existe pas du tout.

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

Je sais que je suis en retard pour répondre à la fonction mais jquery a une fonction de construction pour le faire

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

Reportez-vous au document API jquery de jquery.type https://api.jquery.com/jQuery.type/ pour la même chose.

10
Arpita

Vous pouvez utiliser une technique abrégée pour vérifier si elle est indéfinie ou nulle.

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

j'espère que cela vous aidera

2
Rohidas Kadam
if (value === undefined) {
    // ...
}
2
sandeep kumar

lorsque je teste "typeof obj === undefined", la alert(typeof obj) renvoie object, même si obj est indéfini. Puisque obj est un type de Object son retournant Object, pas undefined.

Donc, après des heures de test, j'ai opté pour la technique ci-dessous.

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

Je ne suis pas sûr de savoir pourquoi la première technique n'a pas fonctionné.

1
Sridhar K

Je ne suis pas sûr que ce soit la meilleure solution, mais cela fonctionne bien:

if($someObject['length']!=0){
    //do someting
}
0
esdu
function isValue(value, def, is_return) {
    if ( $.type(value) == 'null'
        || $.type(value) == 'undefined'
        || $.trim(value) == ''
        || ($.type(value) == 'number' && !$.isNumeric(value))
        || ($.type(value) == 'array' && value.length == 0)
        || ($.type(value) == 'object' && $.isEmptyObject(value)) ) {
        return ($.type(def) != 'undefined') ? def : false;
    } else {
        return ($.type(is_return) == 'boolean' && is_return === true ? value : true);
    }
}

essayez ce ~ tous les types

0
MGK

Vous pouvez utiliser deux sens 1) if ( val == null ) 2) if ( val === undefine )

0
Suhag Lapani88

Si vous avez le nom de l'élément et non l'id, nous pouvons effectuer la vérification non définie de tous les éléments de texte (par exemple) comme indiqué ci-dessous et les renseigner avec une valeur par défaut, par exemple 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')
    }
  })
0
Yoosaf Abdulla