जवाबों:
var foo = $('#multiple').val();
.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>
null
एक खाली सरणी के बजाए कुछ चयनित रिटर्न के साथ बहुविकल्पी ध्यान देने योग्य । इसका मतलब है कि यदि आप प्रोग्राम में चयनित मूल्य जोड़ रहे हैं , तो आपके पास इसे सही तरीके से प्राप्त करने के लिए बहुत कुछ करना है।
var selectedValues = $('#multipleSelect').val() || [];
कि यह भी ध्यान देने योग्य है कि यह स्ट्रिंग की एक सरणी देता है। मैं एक पूर्णांक से तुलना कर रहा था और कोई मेल नहीं मिल रहा था, इसलिए मैंने एक जोड़ा .toString()
।
तुम भी जेएस नक्शा समारोह का उपयोग कर सकते हैं:
$("#multipleSelect :selected").map(function(i, el) {
return $(el).val();
}).get();
और तब आप option
तत्व की कोई भी संपत्ति प्राप्त कर सकते हैं :
return $(el).text();
return $(el).data("mydata");
return $(el).prop("disabled");
etc...
el
हर एक विकल्प के लिए jQuery वस्तु के रूप में रैपिंग के अतिरिक्त खर्च का भुगतान करने की आवश्यकता नहीं है । जब यह बहुत अजीब न हो, तो बस DOM से सीधे चलें। आप $(el).val()
बस बदल सकते हैं el.value
। बेशक अगर आप jQuery के लिए उपयोग किए जाते हैं या अपने अन्य उदाहरणों की तरह डेटा या विशेषताओं को हथियाना चाहते हैं, तो jQuery किसी को भी नुकसान नहीं पहुंचा रहा है।
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.
बस एक लाइन से-
var select_button_text = $('#SelectQButton option:selected')
.toArray().map(item => item.text);
आउटपुट: ["text1", "text2"]
var select_button_text = $('#SelectQButton option:selected')
.toArray().map(item => item.value);
आउटपुट: ["value1", "value2"]
यदि आप .join () का उपयोग करते हैं
var select_button_text = $('#SelectQButton option:selected')
.toArray().map(item => item.text).join();
आउटपुट: टेक्स्ट 1, टेक्स्ट 2, टेक्स्ट 3
HTML कोड:
<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() );
});
मुझे भरोसा है ये काम करेगा
$('#multiple').find(':selected')
@Prabhagaran
अल्पविराम विभाजक में चयनित मान प्राप्त करें
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);
बस इस का उपयोग करें
$('#multipleSelect').change(function() {
var selectedValues = $(this).val();
});
Text 1
मूल्य के बजाय प्राप्त करना चाहते हैं ? के.val()
साथ बदलें.text()
?