選択した複数選択ボックスから選択した値を取得するにはどうすればよいですか?
通常のinput/select/etcからのように...:
$("form.my-form .chosen-select").val()
$("#select-id").chosen().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 doc では、ページの下部にあるイベントのトリガーに関するセクションで、「選択された元の選択フィールドでいくつかの標準およびカスタムイベントがトリガーされる」と表示されます。これらの標準イベントの1つは変更イベントであるため、標準の選択入力の場合と同じように使用できます。必要に応じて、選択されたクラスをセレクタとして使用することに煩わされる必要はありません。 (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でターゲティングすると問題が発生すると考えられます。選択されたIDは元のselect
から新しく作成されたdiv
にIDをコピーし、同じ(現在は一意ではない)IDの2つの要素を残します現在のページ。
IDによる選択をターゲットにする場合、select
に固有のセレクターを使用します。
$( 'select#yourID' ).on( 'change', function() {
console.log( $( this ).val() );
} );
...の代わりに...
$( '#yourID' ).on( 'change', function() {
console.log( $( this ).val() );
} );
これは、選択されたアイテムがマルチモードであっても、選択されたアイテムをミラーリングして元の(非表示になっている)select
要素に戻すために機能します。
(アプリケーションで別の方向に進むことにした場合は、Chosenを使用しても使用しなくても機能し続けます。)