如何从选定的多选框中获取选定的值?
9 回答
$("#select-id").chosen().val()
就像从任何常规输入/选择/等...:
$("form.my-form .chosen-select").val()
这对我有用
$(".chzn-select").chosen({
disable_search_threshold: 10
}).change(function(event){
if(event.target == this){
alert($(this).val());
}
});
$("#select-id").chosen().val()
这是正确的答案,我试过了,传递的值是用“,”分隔的值
如果有人只想在单击选项时获得选定的值,他可以执行以下操作:
$('.chosen-select').on('change', function(evt, params) {
var selectedValue = params.selected;
console.log(selectedValue);
});
截至 2016 年,您可以比已经给出的任何答案更简单地做到这一点:
$('#myChosenBox').val();
其中“myChosenBox”是原始选择输入的 id。或者,在更改事件中:
$('#myChosenBox').on('change', function(e, params) {
alert(e.target.value); // OR
alert(this.value); // OR
alert(params.selected); // also in Panagiotis Kousaris' answer
}
在Chosen 文档中,在页面底部附近关于触发事件的部分中,它显示“Chosen 在原始选择字段上触发了许多标准和自定义事件”。这些标准事件之一是更改事件,因此您可以像使用标准选择输入一样使用它。如果你不想的话,你不必乱用 Chosen 的应用类作为选择器。(对于change
事件,就是这样。其他事件往往是另一回事。)
如果您想获取选定选项的文本(选择获取显示选定值)
$("#select-id").chosen().find("option:selected" ).text();
这个解决方案对我有用
var ar = [];
$('#id option:selected').each(function(index,valor){
ar.push(valor.value);
});
console.log(ar);
确保您的<option>
标签具有相应的value
属性。希望能帮助到你。
我相信在按 ID 定位时会出现问题,因为 Chosen 会将原始 ID 复制select
到新创建div
的 ID 上,从而在当前页面上留下 2 个具有相同(现在不是唯一)ID 的元素。
当以 ID 选择为目标时,请使用特定于 的选择器select
:
$( 'select#yourID' ).on( 'change', function() {
console.log( $( this ).val() );
} );
...代替...
$( '#yourID' ).on( 'change', function() {
console.log( $( this ).val() );
} );
这是因为 Chosen 将其选定项目镜像回原始(现在隐藏)select
元素,即使在多模式下也是如此。
(无论有没有选择,它也可以继续工作,比如说......如果您决定在您的应用程序中采用不同的方向。)