jQuery Select2 で、初期値の設定と選択状態のクリア
はじめに
jQuery Select2 で、初期値を設定する方法と、クリアをする方法を調べた。
TL;DR
$('#mySelect2').val("val").trigger('change');
で初期化multiple
なら$('#mySelect2').val(["val1", "val2", ...]).trigger('change');
$('#mySelect2').val(null).trigger('change');
でクリア
目次
環境・条件
- Chrome バージョン: 76.0.3809.132(Official Build) (64 ビット)
- jQuery v3.4.1 (CDN)
- select2 v4.0.10 (CDN)
詳細
初期値の設定方法
公式 - Selecting options に書かれてる。
1 | // Single |
HTML, JS (single)
1 | <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> |
1 | $(document).ready(function() { |
See the Pen select2 initialize sample(single) by 17num (@17num) on CodePen.
HTML, JS (multiple)
1 | <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> |
1 | $(document).ready(function() { |
See the Pen select2 initialize sample(multiple) by 17num (@17num) on CodePen.
クリアする方法
公式 - Clearing selections に書かれてる。
1 | $('#mySelect2').val(null).trigger('change'); |
multiple
でも同じ方法でクリアできる。
HTML, JS
1 | <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> |
1 | function clearSelectedOptions() { |
See the Pen select2 clear sample by 17num (@17num) on CodePen.
まとめ
$('#mySelect2').val("val").trigger('change');
で初期化multiple
なら$('#mySelect2').val(["val1", "val2", ...]).trigger('change');
$('#mySelect2').val(null).trigger('change');
でクリア
その他・メモ
通常、クリアする場合には selectedIndex = -1
をしないといけない(っぽい)が、それもやらなくて良い(たぶん select2 の内部でやってくれてる)。
参考文献
- Getting Started | Select2 - The jQuery replacement for select boxes
- Add, select, or clear items | Select2 - The jQuery replacement for select boxes
- [JavaScript] セレクトボックスを未選択状態にする | コピペで使える JavaScript逆引きリファレンス
関連記事
- jQuery Select2 で ajax を使って選択肢を取得する
- jQuery Select2 で動的に選択肢を追加する
- jQuery Select2 で上限ありの複数選択
- Lozad.js で Lazy Load (非 jQuery)
- JavaScript で画像をローカルにダウンロード
- JavaScript で複数画像を zip に圧縮してローカルにダウンロード
- JavaScript で URL のクエリパラメータを操作する方法
- axios で添付ファイルありのリクエスト(multipart/form-data の POST)