2010-04-26 12 views
9
<select name="DropList" id="serverDropList"> 
    <option selected="selected" value="2">server1:3000</option> 
    <option value="5">server3:3000</option> 
</select> 

मुझे प्रोटोटाइप में पता है मैं $('serverDropList').value द्वारा मूल्य प्राप्त कर सकता हूं लेकिन मैं "सर्वर 1: 3000" कैसे प्राप्त कर सकता हूं?किसी चयनित आइटम का चयन किसी चयनित नियंत्रण में कैसे प्राप्त करें?

var box = $('serverDropList'); 
var text = box.selectedIndex >= 0 ? box.options[box.selectedIndex].innerHTML : undefined; 

... आप चयनित विकल्प पर innerHTML, या undefined देता है यदि कोई भी है:

उत्तर

19

मुझे नहीं लगता कि प्रोटोटाइप कि करता है कि आप के लिए, इसलिए किसी भी शॉर्टकट है।

आप चाहें, तो आप Element#addMethods उपयोग कर सकते हैं अपने चयन बक्से के सभी पर एक बार इस को परिभाषित करने और यह उपलब्ध है:

Element.addMethods("SELECT", (function() { 
    function getSelectedOptionHTML(element) { 
     if (!(element = $(element))) return; 
     var index = element.selectedIndex; 
     return index >= 0 ? element.options[index].innerHTML : undefined; 
    } 

    return { 
     getSelectedOptionHTML: getSelectedOptionHTML 
    }; 
})()); 

उपयोग:

var text = $('serverDropList').getSelectedOptionHTML(); 

मैं एक नामित समारोह जब परिभाषित करने के लिए इस्तेमाल किया उस। आप (मैं, मैं always use them) नामक कार्यों के बारे में परवाह नहीं कर रहे हैं, आप इसे थोड़ा आसान बनाने के कर सकते हैं:

Element.addMethods("SELECT", { 
    getSelectedOptionHTML: function(element) { 
     if (!(element = $(element))) return; 
     var index = element.selectedIndex; 
     return index >= 0 ? element.options[index].innerHTML : undefined; 
    } 
); 
21

आप प्रोटोटाइप का उपयोग कर रहे हैं, तो आप उपयोग कर सकते हैं:

var text = $('serverDropList')[$('serverDropList').selectedIndex].text; 
+0

धन्यवाद :) ठीक काम कर रहा है :) – Elangovan

+0

यह सही जवाब होना चाहिए। बिल्कुल सही – Apeiron

2
function getSelectedValue(obj) { 
    return obj.options[obj.selectedIndex].value; 
} 

उपयोग:

<select onchange="alert(getSelectedValue(this););" id="mySelect"> 
<option value="1">one</option> 
<option value="2">two</option> 
</select> 

या

getSelectedValue(document.getElementById('mySelect')); 

या

getSelectedValue($('mySelect')); 
+1

यह टेक्स्ट मान वापस नहीं करता है, लेकिन चयनित आइटम की 'मान' प्रॉपर्टी। ओपी चयनित विकल्प के टेक्स्ट वैल्यू के लिए पूछ रहा था। – cjc343

5

मैं माफी चाहता हूँ अगर मैं इस जवाब के साथ देर से कर रहा हूँ, लेकिन मैं एक ही समस्या में देख रहा था और मैं इस जवाब से संतुष्ट नहीं था (जब प्रोटोटाइप या jQuery का उपयोग), तो मैंने एक बेहतर उत्तर के लिए खोद दिया:

प्रोटोटाइप में निम्न चयनकर्ता है जिसका उपयोग आप सीयू को अपनी सूची का चयनित मूल्य प्राप्त करने के लिए कर सकते हैं: $ एफ। तो तुम उदाहरण स्थिति में, यह निम्न कोड काम करना चाहिए:

$F('serverDropList'); -- this for getting the value 
$F('serverDropList').text; -- this for getting the text 
+0

यह बहुत अच्छा है .. क्या एक मोड़ के साथ बनाई गई 'यह' के साथ मैश करने का कोई तरीका है? – Damon

+1

एनएम .. मैं इसका उपयोग करने की कोशिश करने पर अपरिभाषित हो रहा हूं .. – Damon

+0

मुझे यकीन नहीं है कि यह फ़ंक्शन सभी ब्राउज़रों के लिए समर्थित है, तो आप इसे देख सकते हैं, अन्यथा आप कोई गलती कर सकते हैं, एक बेवकूफ़ जमा कर सकते हैं इसलिए मैं आपके कारण की मदद कर सकता हूं – decebal

0

दूसरी पसंद का चयन करें:

<select onchange="alert(getSelectedValue(this););" id="mySelect"> 
    <option> value="1" city="chicago"> one </option> 
    <option> value="2" city="orlando"> two </option> 
</select> 

मैं आइटम मूल्य शहर लेने के लिए की जरूरत है।

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