16

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

在没有多重选择的情况下,我可以通过使用 foll 来获得选定的值。代码

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

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

4

6 回答 6

23

Chosen 文档提到了用于获取最近更改的变量的参数。

每当进行选择时,Chosen 都会触发标准 DOM 事件(它还会发送一个 selected 或 deselected 参数,告诉您哪个选项已更改)。

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

$(".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.
});
于 2013-10-24T00:51:19.710 回答
14

简短的回答:

你只需这样做: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
    ...
});
于 2013-04-20T00:30:51.553 回答
1

your code is gettin the correct selected value.. but since its multiple you need to use loop..or use map to get the selected value and push it into array..

try this

 $(".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
});

updated

if you are getting commaseperated values then use split()

 var values=  $(".selectId").val();
 $.each(values.split(',').function(i,v){
     alert(v); //will alert each value
     //do your stuff
 }
于 2013-03-14T07:20:06.617 回答
0

尝试这个

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

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

});
于 2013-03-14T07:29:03.793 回答
0

这就是我让它工作的方式。在我的 html 中,我有这个

<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>

然后是javascript

// apply chosen-js to the DOM, and store it in a variable.
var chosen = $(".chosen-select").chosen({
   no_results_text: "Oops, nothing found!"
}); 

// inside the change event, we get the value by calling chosen.val()
chosen.change(function() {
   console.log('selected tags are', chosen.val());
});
于 2020-04-11T18:14:56.207 回答
0

Chosen 文档提到了用于获取最近更改的变量的参数。

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

于 2018-09-12T10:01:41.790 回答