2012-01-10 15 views
6

द्वारा कोई मान दर्ज नहीं किया गया है this यहां प्रश्न। क्या मैं जांच सकता हूं कि डीओएम में एक तत्व का मूल्य है या नहीं? मैं इसे 'if' कथन में डाल रहा हूं और यह सुनिश्चित नहीं कर रहा हूं कि मेरा दृष्टिकोण सही है या नहीं। यहाँ जाता है:जांचें कि कोई HTML इनपुट तत्व खाली है या उपयोगकर्ता

if (document.getElementById('customx')){ 
    //do something 
} 

या यह होना चाहिए:

if (document.getElementById('customx') == ""){ 
    //do something 
} 

संपादित करें: मूल्य मेरा मतलब करके, customx एक पाठ इनपुट बॉक्स है। मैं कैसे जांच सकता हूं कि इस फ़ील्ड में कोई टेक्स्ट दर्ज नहीं है या नहीं।

+0

"मूल्य" परिभाषित करें। आपका मतलब टेक्स्ट सामग्री है? बाल तत्व? एक 'मूल्य' विशेषता? –

+0

मूल्य से आपका क्या मतलब है? '<इनपुट प्रकार =" पाठ "मान =" myValue ">' या ' myValue'? –

+0

हाय, क्षमा करें मुझे अपने प्रश्न में और अधिक स्पष्ट होना चाहिए था। मैंने अपना प्रश्न – zik

उत्तर

14

getElementById विधि एलिमेंट ऑब्जेक्ट देता है जिसका उपयोग आप तत्व के साथ संवाद करने के लिए कर सकते हैं। यदि तत्व नहीं मिला है, तो null वापस कर दिया गया है। इनपुट तत्व के मामले में, value ऑब्जेक्ट की संपत्ति में मान विशेषता में स्ट्रिंग होती है।

तथ्य यह है कि && ऑपरेटर शॉर्ट सर्किट, और कहा कि दोनों null और रिक्त स्ट्रिंग एक बूलियन संदर्भ में "falsey" माना जाता है, हम आपको चेक तत्व अस्तित्व और मान डेटा की उपस्थिति के लिए इस प्रकार गठजोड़ कर सकते हैं का उपयोग करके:

var myInput = document.getElementById("customx"); 
if (myInput && myInput.value) { 
    alert("My input has a value!"); 
} 
0

आपका पहला मूल रूप से सही था। यह, एफवाईआई, बुरा है।

if (document.getElementById('customx') == ""){ 

डोम नोड्स वास्तव में जावास्क्रिप्ट वस्तु का अपना प्रकार के होते हैं: यह एक डोम नोड और एक स्ट्रिंग के बीच एक समानता की जांच करता है। इस प्रकार यह तुलना कभी भी काम नहीं करेगी क्योंकि यह दो अलग-अलग अलग-अलग डेटा प्रकारों पर समानता तुलना कर रही है।

+2

अपडेट किया है पहला वाला कोई भी सही नहीं है। यह जांचता है कि तत्व मौजूद है या नहीं, यह नहीं कि इसका मूल्य है या नहीं। –

0

आप चाहते हैं:

if (document.getElementById('customx').value === ""){ 
    //do something 
} 

value संपत्ति आप एक स्ट्रिंग मान दे देंगे और आप की तुलना करने कि कोई रिक्त स्ट्रिंग के खिलाफ की जरूरत है।

+1

ध्यान रखें कि '" "' '' '' '' '' 'है लेकिन स्क्रीन पर स्पॉट करना मुश्किल है। – Quentin

+3

ध्यान रखें कि यदि तत्व मौजूद नहीं है तो यह क्रैश हो जाता है। –

2

getElementById दोष वापस लौटाएगा यदि तत्व डोम में नहीं मिला था।

var el = document.getElementById("customx"); 
if (el !== null && el.value === "") 
{ 
    //The element was found and the value is empty. 
} 
2
var input = document.getElementById("customx"); 

if (input && input.value) { 
    alert(1); 
} 
else { 
    alert (0); 
} 
संबंधित मुद्दे