2009-10-08 32 views
14

में एक का चयन करें बॉक्स के मूल्य हो रही है मैं एक का चयन करें बॉक्स है:इंटरनेट एक्सप्लोरर

<select id="item1" name="Item 1"> 
    <option> </option> 
    <option> Camera </option> 
    <option> Microphone </option> 
    <option> Tripod </option> 
</select> 

और मैं इस जावास्क्रिप्ट है:

var item1= document.getElementById("item1").value; 

item1 हमेशा खाली पता चलता है, कभी नहीं का विकल्प चुना। हालांकि, यह में काम करता है।

उत्तर

23

आइटम का उपयोग करना बहुत पुराने लोगों को छोड़कर सभी ब्राउज़रों के लिए काम करता है (नेटस्केप 4 कोई भी?)। इस मामले में यह काम नहीं करता है क्योंकि आपके पास विकल्पों में कोई मूल्य विशेषता नहीं है। आपको प्रत्येक विशेषता के लिए मूल्य घोषित करना चाहिए। आपके पास वर्तमान में केवल "टेक्स्ट" प्रॉपर्टी है, जो कि जब भी कोई मूल्य घोषित नहीं किया जाता है तो सामान्य रूप से मूल्य के लिए डिफ़ॉल्ट होता है। वैकल्पिक रूप से आप इन विकल्पों में से प्रत्येक के "मूल्य" को "टेक्स्ट" के समान बनाने के लिए विंडो ऑनलोड ईवेंट में कुछ कोड दबा सकते हैं।

एक तीसरा रास्ता आप नीचे दिए गए कोड है, जो पुराने ढंग का रास्ता है का उपयोग कर सकते हैं:,

var s = document.getElementById('item1'); 
var item1 = s.options[s.selectedIndex].value; 
+0

ओह, यह आईई 6 में काम नहीं करता है, लेकिन आईई 8 में करता है :( – bmw0128

+0

आईई 6 में ठीक काम करना चाहिए - आपको क्या त्रुटि मिलती है? – Greg

+1

कोई त्रुटि नहीं है, मेरे पास एक चेक है जो किसी मान के लिए जांचता है, और मान कभी भी – bmw0128

3

एक परिशिष्ट के रूप में # 1 जवाब देने के लिए < के रूप में सावधान रहना होगा चयन> .selectedIndex हो सकता है -1 कुछ कई बार < में पारित होने पर अपवाद फेंक देगा>। विकल्प [n]। इस तरह के रूप में, आप एक त्वरित परीक्षण करते हैं चाहते हो सकता है:

var s = document.getElementById('item1'); 
var item = (-1 != s.selectedIndex)? 
       s.options[s.selectedIndex] : null; 

संपादित

प्रति टिम टिप्पणी, s.selectedIndex हो सकता -1 आप जावास्क्रिप्ट के माध्यम से यह निर्धारित करते हैं या आप एक खाली < चयन बनाने > बॉक्स।

+0

क्या आपको पता है कि 'चयनित इंडेक्स -1 -1 कब हो सकता है? मैंने कभी यह नहीं देखा है। –

+0

एकमात्र तरीका 'चयनित इंडेक्स' -1 हो सकता है यदि आपने स्पष्ट रूप से इसे जावास्क्रिप्ट के माध्यम से -1 के रूप में सेट किया है। –

+0

हालांकि, मैंने बहुत तेज़ी से डाउनवॉट किया है और अब जब तक आप संपादित नहीं करते हैं तब तक मैं इसे हटा नहीं सकता। माफ़ कीजिये। –

14

चूंकि आपके विकल्प टैग में "मान" IE6 और IE7 विशेषता नहीं है, तो आप एक खाली स्ट्रिंग वापस कर देंगे। आप इस तरह "पाठ" विकल्प वस्तु के क्षेत्र से मूल्य पढ़ना चाहिए:

var item1 = s.options[s.selectedIndex].text; 

ITEM1 में आप मूल्य आप Firefox और IE 8.

1

के साथ संगतता को तोड़ने के बिना की जरूरत है का चयन करें बॉक्स के एक vaiable columnName प्राप्त करने के लिए कोड कहा जाता layerDetails.styleColumn, कि सभी ब्राउज़रों में काम करता है (चयन टैग एक ही नाम और आईडी है) ...

var columnName = document.getElementsByName('layerDetails.styleColumn')[0].value; 
if (columnName == null || columnName == '') 
    { 
    columnName = document.getElementById('layerDetails.styleColumn').value; 
    } 

if (columnName == null || columnName == '') 
    { 
    var select = document.getElementById('layerDetails.styleColumn'); 
    columnName= select.options[select.selectedIndex].value; 
    if (columnName == null || columnName == '') 
    { 
    columnName= select.options[select.selectedIndex].text; 
    } 
    } 
संबंधित मुद्दे