2011-08-23 17 views
12

मैं बस की जाँच करने के अगर मैं एक खाली इनपुट पाठ बॉक्स है कोशिश कर रहा हूँ की संपत्ति लंबाई पढ़ा नहीं जा सकता लेकिन जब मैं क्रोम में इस चलाने मैं इस त्रुटि मिलती है:अपरिभाषित

Uncaught TypeError: Cannot read property 'length' of undefined. 

यहाँ कैसे मैं इसे करने के बारे में जाना है । मैं डोम तैयारी की जांच करता हूं और फिर फ़ंक्शन को कॉल करता हूं।

function walkmydog() { 
    //when the user starts entering                                     
    if(document.getElementById('WallSearch').value.length == 0) { 
     alert("nothing"); 
    } 
} 

if (document.addEventListener) { 
    document.addEventListener("DOMContentLoaded", walkmydog, false); 
} 
+0

आप अपने HTML के प्रासंगिक भाग संलग्न करें कर सकते हैं? –

+1

क्या आप वाकई 'वॉलसर्च'' इनपुट' तत्व की आईडी हैं? यदि यह था, तो आपको वह त्रुटि नहीं मिलेगी: http://jsfiddle.net/fkling/x9Vf2/ –

+0

आप डोम तैयारी के लिए कैसे जांचते हैं? – bjornd

उत्तर

7

इनपुट की आईडी WallSearch नहीं है। शायद आप भ्रमित कर रहे हैं कि name और id। वे दो अलग-अलग गुण हैं। name का उपयोग उस नाम को परिभाषित करने के लिए किया जाता है जिसके द्वारा मूल्य पोस्ट किया जाता है, जबकि id डोम के अंदर तत्व की अद्वितीय पहचान है।

अन्य संभावना यह है कि आपके पास एक ही आईडी के साथ दो तत्व हैं। ब्राउजर इनमें से कोई भी चुन सकता है (शायद आखिरी, शायद पहले) और एक तत्व लौटाएगा जो value संपत्ति का समर्थन नहीं करता है।

3

शायद आप पहले यह तय कर सकते हैं अगर डोम वास्तव में मौजूद नहीं है,

function walkmydog() { 
    //when the user starts entering 
    var dom = document.getElementById('WallSearch'); 
    if(dom == null) 
    { 
     alert('sorry, WallSearch DOM cannot be found'); 
     return false;  
    } 

    if(dom.value.length == 0) { 
     alert("nothing"); 
    } 
} 

if (document.addEventListener) { 
    document.addEventListener("DOMContentLoaded", walkmydog, false); 
} 
संबंधित मुद्दे