Câu trả lời:
var foo = $('#multiple').val();
Sử dụng .val()
hàm trên danh sách đa lựa chọn sẽ trả về một mảng các giá trị được chọn:
var selectedValues = $('#multipleSelect').val();
và trong html của bạn:
<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
thay vì một mảng trống. Điều này có nghĩa là nếu bạn lập trình thêm một giá trị đã chọn, bạn có một chút tung hứng để làm cho đúng.
var selectedValues = $('#multipleSelect').val() || [];
đáng chú ý là nó trả về một chuỗi các chuỗi. Tôi đã so sánh với một số nguyên và không nhận được kết quả trùng khớp, vì vậy tôi đã thêm một .toString()
.
Bạn cũng có thể sử dụng chức năng bản đồ js:
$("#multipleSelect :selected").map(function(i, el) {
return $(el).val();
}).get();
Và sau đó bạn có thể nhận được bất kỳ thuộc tính nào của option
phần tử:
return $(el).text();
return $(el).data("mydata");
return $(el).prop("disabled");
etc...
el
như một đối tượng jQuery cho mỗi tùy chọn duy nhất. Chỉ cần đi thẳng ra khỏi DOM khi nó không quá lạ. Bạn có thể thay đổi $(el).val()
thành chỉ el.value
. Tất nhiên, nếu bạn đã quen với jQuery hoặc muốn lấy dữ liệu hoặc thuộc tính như các ví dụ khác của bạn, jQuery sẽ không làm tổn thương bất cứ ai.
var selected=[];
$('#multipleSelect :selected').each(function(){
selected[$(this).val()]=$(this).text();
});
console.log(selected);
Một sự chấp thuận khác cho vấn đề này. Mảng được chọn sẽ có các chỉ mục là các giá trị tùy chọn và mỗi mục mảng sẽ có văn bản là giá trị của nó.
ví dụ
<select id="multipleSelect" multiple="multiple">
<option value="abc">Text 1</option>
<option value="def">Text 2</option>
<option value="ghi">Text 3</option>
</select>
nếu nói tùy chọn 1 và 2 được chọn.
mảng được chọn sẽ là:
selected['abc']=1;
selected['def']=2.
Chỉ bằng một dòng-
var select_button_text = $('#SelectQButton option:selected')
.toArray().map(item => item.text);
Đầu ra: ["text1", "text2"]
var select_button_text = $('#SelectQButton option:selected')
.toArray().map(item => item.value);
Đầu ra: ["value1", "value2"]
Nếu bạn sử dụng .join ()
var select_button_text = $('#SelectQButton option:selected')
.toArray().map(item => item.text).join();
Đầu ra: text1, text2, text3
Mã 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>
Mã JQuery:
$('#multiple :selected').each(function(i, sel){
alert( $(sel).val() );
});
Hy vọng nó hoạt động
$('#multiple').find(':selected')
@Prabhagaran
Nhận các giá trị được chọn trong dấu phẩy
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);
Chỉ cần sử dụng cái này
$('#multipleSelect').change(function() {
var selectedValues = $(this).val();
});
Text 1
thay vì giá trị? Thay thế.val()
bằng.text()
?