วิธีรับค่ากล่องที่เลือกหลายค่าโดยใช้ jQuery
วิธีรับค่ากล่องที่เลือกหลายค่าโดยใช้ jQuery
คำตอบ:
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()
ฉันถูกเมื่อเทียบกับจำนวนเต็มและได้รับการแข่งขันที่ไม่มีดังนั้นฉันเพิ่ม
คุณยังสามารถใช้ฟังก์ชั่นแผนที่ js:
$("#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();
เอาท์พุต: text1, text2, text3
รหัส 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()
?