1. ホーム
  2. jquery

[解決済み] JqGridでselect2ドロップダウンの選択値を変更するにはどうすればよいですか?

2022-04-20 02:34:06

質問

私は、Olegの select2 デモ しかし、私はドロップダウンメニューで現在選択されている値を変更することが可能かどうか疑問に思っています。

例えば、読み込んだ値が4つだった場合。 "Any", "Fruit", "Vegetable", "Meat" で、ドロップダウンリストのデフォルトは "Any" に変更したい場合、どのようにすればよいでしょうか。 "Fruit" JqGrid イベントで loadComplete ?

これは可能なのでしょうか?

どのように解決するのですか?

select2 バージョン >= 4.0.0 の場合

他の解決策はうまくいかないかもしれませんが、以下の例ではうまくいくはずです。

解決策1:select2を含む、付属のすべての変更イベントをトリガーさせます。

$('select').val('1').trigger('change');

解決策2:JUST select2 change イベントを発生させる。

$('select').val('1').trigger('change.select2');

こちらをご覧ください jsfiddle を参考にしてください。解決策2については @minlare に感謝します。

説明します。

例えば、親友セレクトに人の名前を入れておくとします。つまり、Bob、Bill、John(この例では、Valueは名前と同じと仮定します)です。まず、select2 を初期化します。

$('#my-best-friend').select2();

今度はブラウザでボブを手動で選択します。次にボブはいたずらをして、私はもう彼を好きではありません。そこで、システムは私のためにボブの選択を解除します。

$('#my-best-friend').val('').trigger('change');

あるいは、ボブではなくリストの次を選択するようにしたとします。

// I have assume you can write code to select the next guy in the list
$('#my-best-friend').val('Bill').trigger('change');  

セレクト2サイトでの注意事項(参照 非推奨および削除されたメソッド をご覧ください。

.select2('val') val" メソッドは非推奨となり、Select2 4.1 で削除される予定です。非推奨のメソッドは、もはや triggerChange パラメータを含みません。

代わりに、基礎となる要素で直接 .val を呼び出す必要があります。もし、2番目のパラメータ(triggerChange)が必要であれば、要素上で.trigger("change")も呼び出す必要があります。

$('select').val('1').trigger('change'); // instead of $('select').select2('val', '1');