2011-06-27 12 views
8

है तो मेरे पास एक टेक्स्ट बॉक्स तत्व है जिसका मूल्य मैं document.getElementById("id-name").value का उपयोग करने का प्रयास कर रहा हूं। मुझे लगता है कि कॉल खाली स्ट्रिंग के बजाय शून्य को वापस कर रहा है। लौटाए गए मान का डेटा-प्रकार अभी भी स्ट्रिंग है। एक स्ट्रिंग मान शून्य है?जावास्क्रिप्ट दस्तावेज़ .getElementById ("id")। जब तत्व खाली टेक्स्ट बॉक्स

<input type="text" value="" id="mytext"> पाठ बॉक्स जिसका मूल्य मैं का उपयोग कर लाने के लिए कोशिश कर रहा हूँ var mytextvalue = document.getElementById("mytext").value;

+2

क्या आप अपना एचटीएमएल पोस्ट कर सकते हैं? – BonyT

+0

@ बोनीटी, '<इनपुट प्रकार =" टेक्स्ट "मान =" "आईडी =" mytext ">' वह टेक्स्टबॉक्स है जिसका मूल्य मैं 'var mytextvalue = document.getElementById ("mytext") का उपयोग करके लाने की कोशिश कर रहा हूं। मान; ' – Guruprasad

+0

http://jsfiddle.net/UVdVe/ ??? समस्या मत देखो! – BonyT

उत्तर

7

अपना HTML पोस्ट करने से थोड़ा सा मदद मिल सकती है। इसके बजाए, आप पहले तत्व प्राप्त कर सकते हैं और फिर जांच सकते हैं कि यह शून्य है या नहीं और उसके बाद यह मानने के बिना सीधे मूल्य मांगने के बजाय इसके मूल्य के लिए पूछें कि क्या तत्व HTML पर दिखाई देता है या नहीं।

element1 = document.getElementById(id); 

if(element1 != null) 
{ 
    //code to set the value variable. 
} 
+0

जिस तत्व का मैं उपयोग करने का प्रयास कर रहा हूं वह '' दस्तावेज़ का उपयोग कर रहा है।getElementById ("mytext")। वैल्यू' जो "" के बदले एक शून्य देता है। तत्व, चूंकि यह एक टेक्स्ट बॉक्स है जो बहुत अधिक दिखाई देता है। – Guruprasad

0

ऐसा लगता है कि आप HTML मार्कअप में मूल्य विशेषता हटा दिया है है।

इसे <input value="" ... > के रूप में जोड़ें।

+0

'value = "" 'null के साथ भी – Guruprasad

+0

ब्राउज़र के बदले लौटाया गया मान है? मैंने अभी पिछले ओपेरा, क्रोम, एफएफ 4, आईई 8 में चेक किया है और "" मिला है। –

1

इस fiddle जाँच करें और मुझे पता है कि अगर आप शून्य मान की एक चेतावनी मिलता है कृपया। मैंने वहां अपना कोड कॉपी किया है और कुछ अलर्ट जोड़े हैं। दूसरों की तरह, मुझे भी एक नल वापस नहीं देखा जाता है, मुझे एक खाली स्ट्रिंग मिलती है। आप किस ब्राउज़र का उपयोग कर रहे हैं?

1

This demo (Firebug के साथ) क्रोम 14, FF3 और FF5 में मेरे लिए सही ढंग से लौटा रहा है:

var mytextvalue = document.getElementById("mytext").value; 
console.log(mytextvalue == ''); // true 
console.log(mytextvalue == null); // false 

और बदलते console.logalert लिए, मैं अभी भी IE6 में वांछित आउटपुट मिलता है।

0

मुझे लगता है कि जिस टेक्स्टबॉक्स को आप एक्सेस करने का प्रयास कर रहे हैं वह अभी तक आपके जावास्क्रिप्ट को निष्पादित किए जाने पर पृष्ठ पर लोड नहीं किया गया है।

यानी, जावास्क्रिप्ट के लिए पृष्ठ के DOM से टेक्स्टबॉक्स को पढ़ने में सक्षम होने के लिए, टेक्स्टबॉक्स तत्व के रूप में उपलब्ध होना चाहिए। यदि पृष्ठ पर टेक्स्टबॉक्स से पहले जावास्क्रिप्ट को कॉल किया जा रहा है, तो टेक्स्टबॉक्स दिखाई नहीं देगा और इसलिए वापस लौटाया जाएगा।

1
try this...  
<script type="text/javascript"> 
    function test(){ 
    var av=document.getElementById("mytext").value; 
    alert(av); 
    } 
    </script> 

    <input type="text" value="" id="mytext"> 
    <input type="button" onclick="test()" value="go" /> 
4

fyi, यह तब हो सकता है जब आप अपने इनपुट टैग पर HTML प्रकार = "संख्या" विशेषता का उपयोग कर रहे हों। एक गैर-संख्या दर्ज करने से पहले आपकी स्क्रिप्ट को पता चल जाएगा कि क्या हो रहा है।

1
अपने कोड

var mytextvalue = document.getElementById("mytext"); 

mytextvaluenull शामिल होंगे अगर आप इस कोड से पहले एक document.write() बयान है के लिए

। तो document.write कथन हटाएं और आपको चरमें उचित टेक्स्ट ऑब्जेक्ट प्राप्त करना चाहिए।

यह document.write दस्तावेज़ को बदलकर होता है।

संबंधित मुद्दे