16

私はChosenMultipleSelectを使用しています。私がやりたいのは、ユーザーがオプションを選択した場合、その値が必要であり、その値に応じていくつかの機能を実行することです。

複数選択せずに選択した場合、follを使用して選択した値を取得できます。コード

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

しかし、複数選択では、最初に選択された値が再び取得されます。nもう一度、複数選択要素で現在選択されている値を見つけることで、誰かが私を助けてくれますか?

4

6 に答える 6

23

選択されたドキュメントには、最近変更された変数を取得するためのパラメーターが記載されています。

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.
});
于 2013-10-24T00:51:19.710 に答える
14

短い答え:

あなたはこれをするだけです:var myValues = $('#my-select').chosen().val();

完全な例:

次のようなselect-multipleがある場合:

<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

コードは正しい選択値を取得しますが、その倍数であるため、loopを使用する必要があります。または、を使用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
});

更新しました

カンマ区切りの値を取得している場合は、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

選択されたドキュメントには、最近変更された変数を取得するためのパラメーターが記載されています。

$(".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 に答える
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 に答える