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