所选Jquery插件-获取所选值

所选Jquery插件-获取所选值,jquery,jquery-chosen,Jquery,Jquery Chosen,如何从所选多选框中获取所选值?与任何常规输入/选择等类似: $("form.my-form .chosen-select").val() 这对我有用 $(".chzn-select").chosen({ disable_search_threshold: 10 }).change(function(event){ if(event.target == this){ alert($(this).val()); } }); var ar =

如何从所选多选框中获取所选值?

与任何常规输入/选择等类似:

$("form.my-form .chosen-select").val()
这对我有用

$(".chzn-select").chosen({

     disable_search_threshold: 10

}).change(function(event){

     if(event.target == this){
        alert($(this).val());
     }

});
var ar = [];
$('#id option:selected').each(function(index,valor){
    ar.push(valor.value);
});
console.log(ar);

这是正确的答案,我试过了,传递的值是由分隔的值,

如果任何人想在单击某个选项时仅获取选定的值,他可以执行以下操作:

$('.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
}

在中,在页面底部附近关于触发事件的部分中,它说Selected会触发原始select字段上的许多标准和自定义事件。其中一个标准事件是更改事件,因此您可以像使用标准选择输入一样使用它。如果不想,您不必将Selected的应用类用作选择器。对于更改事件,即。其他事件通常是另一回事。

如果您想获取所选选项的文本 选择获取显示选择的值

 $("#select-id").chosen().find("option:selected" ).text();

这个解决方案对我有效

$(".chzn-select").chosen({

     disable_search_threshold: 10

}).change(function(event){

     if(event.target == this){
        alert($(this).val());
     }

});
var ar = [];
$('#id option:selected').each(function(index,valor){
    ar.push(valor.value);
});
console.log(ar);
确保标记具有相应的值属性。
希望有帮助。

我相信当按ID定位时会出现问题,因为Selected会将ID从原始的Selected复制到它新创建的div中,在当前页面上留下两个相同但现在不是唯一ID的元素

按ID选择目标时,请使用特定于选择的选择器:

…而不是

$( '#yourID' ).on( 'change', function() {
    console.log( $( this ).val() );
} );
这是因为即使在多模式下,“选定”也会将其选定项镜像回原来的现已隐藏的“选择”元素


它也会继续工作,不管有没有选择,比如说。。。如果您决定在应用程序中使用不同的方向。

@Andrew这是一个合理的问题-我也想知道Selected是否正确修改了基础的选择框,结果是DOM检查器没有正确刷新。@Naller我的问题不在于合理性,而在于在这个问题上付出的努力。在这种情况下几乎没有。浏览我的链接中的四个点,告诉我这里是否演示了它们中的任何一个。@Andrew精彩的一点。@arvind,我使用了你的代码,也为我显示了multi-select。我将var1=$this.val添加到存储中,但不知道如何随表单提交var1。这不是正确的方法。。因为如果同一个页面有多个selectbox,它将返回假值:这是正确的答案。结果是一个数组,我的问题是如何从数组中提取值,以便将它们放入数据库。我只需要一些关于这里需要的PHP代码的提示。与接受的答案相比,这对我来说是有效的,而接受的答案没有TypeError:$…Selected.val不是function@shankshera是的,我是用val得到的。这个错误出现在控制台上,所选函数无效。但我选择的另一个api运行良好。@幸运的是,您的代码实际上缺少两组api。一个在selected之后,一个在val之后。Try$..selected.val这对我来说很有用,但我想评论一下,selected在select下面创建了一个div。这不是你的目标。选择。我错误地将查询选择器设置为“select-id\u selected”,但正确的选择器是“select-id”。当使用jquery选择错误的标记,然后使用.selected方法时,它返回以下错误:UncaughtTypeError:无法读取undefined的属性'length'。这对我不起作用-当我在selected方法中选择了2个选项时,我得到了变量的2个副本,因此得到了类似这样的结果:var[]=111;var[]=3348;您也可以直接引用选择器中的原始select元素,而不必使用select的applied.selected select类。This或$select-id.selected.findoption:selected.attr'SomArbiraryAttributeNameDefromOptionElement'
$( '#yourID' ).on( 'change', function() {
    console.log( $( this ).val() );
} );