JQuery में 'अपरिभाषित' मान की जाँच कैसे करें


172

संभव डुप्लिकेट:
जावास्क्रिप्ट जावास्क्रिप्ट अपरिभाषित तुलना में एक अपरिभाषित वस्तु संपत्ति का पता लगाना

हम एक अपरिभाषित चर के लिए एक चेक कैसे जोड़ सकते हैं, जैसे:

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

जवाबों:


379

JQuery लाइब्रेरी को विशेष रूप से सरल बनाने और कुछ जावास्क्रिप्ट कार्यक्षमता को एकीकृत करने के लिए विकसित किया गया था।

हालांकि अगर आपको undefinedमूल्य के खिलाफ एक चर की जांच करने की आवश्यकता है , तो किसी विशेष विधि का आविष्कार करने की आवश्यकता नहीं है, क्योंकि जावास्क्रिप्ट में एक typeofऑपरेटर है, जो सरल, तेज और क्रॉस-प्लेटफॉर्म है:

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

यह वैरिएबल या अन्य अनवैलिडेटेड ऑपरेंड के प्रकार को दर्शाता एक स्ट्रिंग देता है। इसकी तुलना में इस पद्धति का मुख्य लाभ यह if (value === undefined) { ... }है कि typeofअगर वैरिएबल valueमौजूद नहीं है तो मामले में अपवाद नहीं बढ़ेगा ।


12
@nahum jQuery एक जावास्क्रिप्ट लाइब्रेरी है। यह एक अलग प्रोग्रामिंग भाषा नहीं है।
VisioN

9
lol omg क्या आप वास्तव में यह टिप्पणी कर रहे हैं ?? मैं जानता हूं वही आदमी है। लेकिन मुझे लगता है कि वह जानना चाहता है कि क्या jQuery में किसी तरह का कोई तरीका मौजूद है जैसे .isUndefined (ऑब्जेक्ट); और मान को सही या गलत लौटाएं। टाइपोफ़ किसी भी ढांचे के बिना सिर्फ जावास्क्रिप्ट है।
ncubica

मेरी समस्याओं में से एक थी: यदि आप ऐसा कुछ कर रहे हैं ("#myId"), तो सुनिश्चित करें कि आपको वास्तव में क्या चाहिए: ए। typeof ("#myId")=== "undefined" ख। या:typeof ("#myId").val() === "undefined"
अल्बर्टी

3
@Alberici ("#myId")एक स्ट्रिंग के अलावा और कुछ नहीं है। इसे हमेशा परिभाषित किया जाएगा और इसका एक प्रकार होगा "string"। यदि आपका मतलब किसी वास्तविक jQuery ऑब्जेक्ट से बना है $("#myId"), तो इसे हमेशा परिभाषित किया जाएगा "object"(यदि आपके पास jQuery सही तरीके से जुड़ा हुआ है)। ID के साथ DOM तत्व की मौजूदगी का myIdआकलन किया जा सकता है if ($("#myId").length > 0) { ... }, जबकि जाँच करें कि क्या इसका मान खाली नहीं है if ($("#myId").val()) { ... }। इनमें से कोई भी खंड वास्तव में इस प्रश्न के विषय से संबंधित नहीं है।
1

1
@ user3284463 जैसा कि उत्तर में उल्लेख किया गया है, value === undefinedयदि valueचर मौजूद नहीं है तो सरल एक अपवाद को बढ़ाएगा । तो यह पूरी तरह से आप पर निर्भर है कि वास्तविक जीवन में क्या उपयोग करना है।
11

26

इस मामले में आप एक === undefinedतुलना का उपयोग कर सकते हैं :if(val === undefined)

यह काम करता है क्योंकि valहमेशा मौजूद रहता है (यह एक फ़ंक्शन तर्क है)।

यदि आप एक मनमाना चर का परीक्षण करना चाहते हैं जो कि एक तर्क नहीं है, अर्थात इसे बिल्कुल भी परिभाषित नहीं किया जा सकता है, तो ऐसा नहीं if(typeof val === 'undefined')होने की स्थिति में अपवाद से बचने के लिए आपको इसका उपयोग करना होगा val


16

ध्यान दें कि टाइपो हमेशा एक स्ट्रिंग लौटाता है, और एक त्रुटि उत्पन्न नहीं करता है यदि चर बिल्कुल मौजूद नहीं है।

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

1
स्ट्रिंग तुलना के लिए, मुझे लगता है कि हमें ===इसके बजाय उपयोग करने की आवश्यकता है==
श्रीराम

@ श्रीराम वे दोनों तुलना करते हैं, बस अलग-अलग तरीकों से ... यह ठीक काम करेगा
RGB

10

मुझे पता है कि मुझे फ़ंक्शन का जवाब देने में देर हो रही है लेकिन ऐसा करने के लिए jquery में बिल्ड फ़ंक्शन है

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

Jquery.type https://api.jquery.com/jQuery.type/ के लिए jquery API दस्तावेज़ देखें ।


3

यह अपरिभाषित है या अशक्त है यह जाँचने के लिए आप शॉर्टहैंड तकनीक का उपयोग कर सकते हैं

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

आशा है कि यह आपकी मदद करेगा



1

जब मैं " typeof obj === undefined" का परीक्षण कर रहा होता हूं , तो alert(typeof obj)वापसी object, भले ही अपरिभाषित हो। चूंकि ओब्ज Objectउसके लौटने का प्रकार है Object, नहीं undefined

इसलिए परीक्षण के कुछ घंटों के बाद मैंने तकनीक को चुना।

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

मुझे यकीन नहीं है कि पहली तकनीक क्यों काम नहीं कर रही थी। लेकिन मुझे इसका उपयोग करके अपना काम पूरा करना होगा।


0

यदि आपके पास तत्व के नाम हैं और आईडी नहीं है तो हम नीचे दिए गए सभी पाठ तत्वों (उदाहरण के लिए) पर अपरिभाषित चेक प्राप्त कर सकते हैं और उन्हें डिफ़ॉल्ट मान के साथ भरें 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

मुझे यकीन नहीं है कि यह सबसे अच्छा समाधान है, लेकिन यह ठीक काम करता है:

if($someObject['length']!=0){
    //do someting
}

0
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);
    }
}

यह प्रयास करें ~ सभी प्रकार के चेकर


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.