2010-07-14 12 views

उत्तर

124

jQuery .val()

var foo = $('#multiple').val(); 
+59

मजेदार इन पुराने प्रश्नों पर वापस देखकर और गलत जवाब को कई बार चुना गया। स्पष्ट रूप से यह 'मान' नहीं प्राप्त कर रहा है क्योंकि ओपी नीचे 'सही' उत्तर की तरह पूछ रहा था। – Tomas

+7

पाइचर्म जैसे आईडीई अब इस तरह के उपयोग पर उठा रहे हैं, 'अक्षम अक्षम JQuery उपयोग' जैसी चेतावनियां दिखा रहे हैं, जो मुझे इस जवाब के पीछे स्क्रॉल करने के लिए प्रेरित करता है। : ओ) –

+0

फ़ंक्शन के अंदर फिर से JQuery ऑब्जेक्ट बनाने की आवश्यकता नहीं है, यह व्यर्थ है क्योंकि आप शुद्ध जावास्क्रिप्ट का उपयोग कर सकते हैं। बस 'foo [i] = select.value; ' –

263

एक बहु-चयन सूची पर .val() समारोह का उपयोग करते हुए चयनित मानों की एक सरणी वापस आ जाएगी:

var selectedValues = $('#multipleSelect').val(); 

और अपने html में:

<select id="multipleSelect" multiple="multiple"> 
    <option value="1">Text 1</option> 
    <option value="2">Text 2</option> 
    <option value="3">Text 3</option> 
</select> 
+11

क्या यू प्राप्त करना चाहते हैं, तो 'पाठ काम नहीं किया के कुछ कोड पोस्ट करने के लिए चाहते हो सकता है? '.val() '' .text() 'के साथ बदलें। –

+8

यह ध्यान देने योग्य है कि किसी भी चयनित चयन के साथ एकाधिक चयन एक खाली सरणी के बजाय 'null' देता है। इसका अर्थ यह है कि यदि आप प्रोग्रामिक रूप से एक चयनित मूल्य _adding_ कर रहे हैं, तो आपके पास इसे सही करने के लिए कुछ जुगलिंग है। – Leo

+0

धन्यवाद! JQuery के साथ तत्व से मूल्य प्राप्त करने के कई तरीके हैं कि यह अनिवार्य रूप से जिस तरीके से आप ढूंढ रहे हैं उसे ढूंढने के लिए एक संघर्ष है। –

8

आप जेएस मैप फ़ंक्शन का भी उपयोग कर सकते हैं:

$("#multipleSelect :selected").map(function(i, el) { 
    return $(el).val(); 
}); 

और फिर आप option तत्व की किसी भी संपत्ति प्राप्त कर सकते हैं: इस समस्या का एक और approch

return $(el).text(); 
return $(el).data("mydata"); 
return $(el).prop("disabled"); 
etc... 
+2

बहुत अच्छा जवाब है, लेकिन प्रत्येक विकल्प के लिए jQuery ऑब्जेक्ट के रूप में 'el' को लपेटने के अतिरिक्त खर्च का भुगतान करने की आवश्यकता नहीं है। जब यह बहुत अजीब नहीं है तो बस डीओएम से सीधे जाओ। आप '$ (el) .val() 'को' el.value' में बदल सकते हैं। बेशक अगर आप jQuery पर उपयोग कर रहे हैं या अपने अन्य उदाहरणों जैसे डेटा या विशेषताओं को पकड़ना चाहते हैं, तो jQuery किसी को चोट नहीं पहुंचा रहा है। – KyleMit

+1

@ केलीमेट ग्रेट टिप। छुपा क्षेत्र मूल्यों के संग्रह को पकड़ने के लिए बस इस दृष्टिकोण का उपयोग किया और यह पूरी तरह से काम किया। – EvilDr

4
var selected=[]; 
$('#multipleSelect :selected').each(function(){ 
    selected[$(this).val()]=$(this).text(); 
    }); 
console.log(selected); 

। चयनित सरणी में इंडेक्स विकल्प विकल्प के रूप में होंगे और प्रत्येक सरणी आइटम में टेक्स्ट के मूल्य के रूप में होगा।

उदाहरण

<select id="multipleSelect" multiple="multiple"> 
    <option value="abc">Text 1</option> 
    <option value="def">Text 2</option> 
    <option value="ghi">Text 3</option> 
</select> 

यदि विकल्प 1 का कहना है और 2 के लिए

चुने गए हैं।

चयनित सरणी होगा:

selected['abc']=1; 
selected['def']=2. 
2

एचटीएमएल कोड:

<select id="multiple" multiple="multiple" name="multiple"> 
    <option value=""> -- Select -- </option> 
    <option value="1">Opt1</option> 
    <option value="2">Opt2</option> 
    <option value="3">Opt3</option> 
    <option value="4">Opt4</option> 
    <option value="5">Opt5</option> 
</select> 

JQuery कोड:

$('#multiple :selected').each(function(i, sel){ 
    alert($(sel).val()); 

}); 

आशा है कि यह काम करता है

+7

"उम्मीद है कि यह काम करता है", अगर आपको यकीन नहीं है कि यह जवाब है, तो इसका परीक्षण करें और सुनिश्चित करें! –

+4

यदि आप उत्तर के बारे में सुनिश्चित नहीं हैं, तो इसे पोस्ट न करें .. !! हम उम्मीदों के लिए यहाँ नहीं हैं .. !! एलओएल –

+2

अरे मैन। यह पूरी तरह से काम करता है। इसकी जांच - पड़ताल करें। आपको उम्मीद करनी चाहिए Irrelevent टिप्पणी मत देना .. – Prabhagaran

0

अल्पविराम विभाजक में मूल्यों का चयन किया हो जाओ

var Accessids = ""; 
$(".multi_select .btn-group>ul>li input:checked").each(function(i,obj) 
{ 
    Accessids=Accessids+$(obj).val()+","; 
}); 
Accessids = Accessids.substring(0,Accessids.length - 1); 
console.log(Accessids); 
0

बस का उपयोग इस

$('#multipleSelect').change(function() { 
    var selectedValues = $(this).val(); 
}); 
संबंधित मुद्दे

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