使用选择的jquery插件获取每个选定的值

时间:2013-03-14 07:09:54

标签: javascript jquery jquery-chosen

我正在使用选择多重选择 我想要做的是,如果用户选择任何我希望该值的选项,那么我将根据该值执行一些功能。

在没有多重选择的情况下选择我可以使用foll获得所选值。代码

$(".selectId").chosen().change(function(){
     selectedValue = $(this).find("option:selected").val();
});

但是在多个选择中我再次获得第一个选定值n 任何人都可以通过在多个选择元素中找到当前选定的值来帮助我吗?

6 个答案:

答案 0 :(得分:20)

Chosen documentation提到了获取最近更改的变量的参数。

  

每当做出选择时,Chosen会触发标准DOM事件   (它还会发送一个选定或取消选择的参数,告诉您   哪个选项已更改)。

因此,如果您只想选择或取消选择最新选项:

$(".selectId").chosen().change(function(e, params){
 // params.selected and params.deselected will now contain the values of the
 // or deselected elements.
});

否则,如果您希望整个数组可以使用,则可以使用:

$(".selectId").chosen().change(function(e, params){
 values = $(".selectId").chosen().val();
 //values is an array containing all the results.
});

答案 1 :(得分:13)

简答:

您只需执行此操作:var myValues = $('#my-select').chosen().val();

完整示例:

如果你有这样的选择倍数:

<select id="my-select" class="chzn-select" multiple data-placeholder="Choose one or more values...">
  <option value="value1">option1</option>
  <option value="value2">option2</option>
  <option value="value3">option3</option>
</select>

您可以在数组中获取所选值以执行以下操作:

// first initialize the Chosen select
$('#my-select').chosen();

// then, declare how you handle the change event
$('#my-select').chosen().change(function(){
    var myValues = $('#my-select').chosen().val();

    // then do stuff with the array
    ...
});

答案 2 :(得分:1)

你的代码是正确的选择值..但是因为它的多个你需要使用循环...或使用map来获取所选值并将其推入数组..

试试这个

 $(".selectId").chosen().change(function(){
    var  selectedValue = $.map( $(this).find("option:selected").val(), function(n){
              return this.value;
       });
    console.log(selectedValue );  //this will print array in console.
    alert(seletedValue.join(',')); //this will alert all values ,comma seperated
});

<强>更新

如果您获得了commaseperated值,请使用split()

 var values=  $(".selectId").val();
 $.each(values.split(',').function(i,v){
     alert(v); //will alert each value
     //do your stuff
 }

答案 3 :(得分:0)

试试这个

 $('.selectId:selected').each(function(i, selected) {

var value = $(selected).val();
var text = $(selected).text();

});

答案 4 :(得分:0)

Chosen documentation提到了用于获取最新更改的变量的参数。

$(".CSS Selector").chosen().change(function(e, parameters) {
  // params.selected and params.deselected will now contain the values of the
  // or deselected elements.
});

答案 5 :(得分:0)

这就是我要使其工作的方式。在我的html中,我有这个

#Two {
  display: block;
  position: relative;
  top: -120px; /*Here must be same value as your navbar height is*/
  visibility: hidden;
}

然后使用javascript

<select data-placeholder="Choose a Country..." class="form-control chosen-select" multiple tabindex="4">
    <option value="USA">USA</option>
    <option value="UK">UK</option>
    <option value="CHINA">CHINA</option>
</select>