はじめに
jQuery Select2 で、初期値を設定する方法と、クリアをする方法を調べた。
TL;DR
$('#mySelect2').val("val").trigger('change');
で初期化
multiple
なら $('#mySelect2').val(["val1", "val2", ...]).trigger('change');
$('#mySelect2').val(null).trigger('change');
でクリア
目次
- はじめに
- TL;DR
- 環境・条件
- 詳細
- 初期値の設定方法
- HTML, JS (single)
- HTML, JS (multiple)
- クリアする方法
- HTML, JS
- まとめ
- その他・メモ
- 参考文献
環境・条件
- Chrome バージョン: 76.0.3809.132(Official Build) (64 ビット)
- jQuery v3.4.1 (CDN)
- select2 v4.0.10 (CDN)
詳細
初期値の設定方法
公式 - Selecting options に書かれてる。
1 2 3 4 5
| $('#mySelect2').val("val").trigger('change');
$('#mySelect2').val(["val1", "val2", ...]).trigger('change');
|
HTML, JS (single)
1 2 3 4 5 6 7 8 9
| <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> <script defer="defer" src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.10/js/select2.min.js"></script> <link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.10/css/select2.min.css" rel="stylesheet">
<select id="mySelect2"> <option value="apple">apple</option> <option value="orange">orange</option> <option value="banana">banana</option> </select>
|
1 2 3 4
| $(document).ready(function() { $("#mySelect2").select2({width: "100%"}); $("#mySelect2").val("orange").trigger("change"); });
|
HTML, JS (multiple)
1 2 3 4 5 6 7 8 9
| <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> <script defer="defer" src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.10/js/select2.min.js"></script> <link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.10/css/select2.min.css" rel="stylesheet">
<select id="mySelect2" multiple> <option value="apple">apple</option> <option value="orange">orange</option> <option value="banana">banana</option> </select>
|
1 2 3 4
| $(document).ready(function() { $("#mySelect2").select2({width: "100%"}); $("#mySelect2").val(["orange", "banana"]).trigger("change"); });
|
クリアする方法
公式 - Clearing selections に書かれてる。
1
| $('#mySelect2').val(null).trigger('change');
|
multiple
でも同じ方法でクリアできる。
HTML, JS
1 2 3 4 5 6 7 8 9 10
| <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.10/js/select2.min.js"></script> <link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.10/css/select2.min.css" rel="stylesheet">
<select id="mySelect2"> <option value="apple">apple</option> <option value="orange">orange</option> <option value="banana">banana</option> </select> <button id="clearSelect2">clear</button>
|
1 2 3 4 5 6 7
| function clearSelectedOptions() { $('#mySelect2').val(null).trigger('change'); } $(document).ready(function() { $("#mySelect2").select2({width: "100%"}); $("#clearSelect2").on("click", clearSelectedOptions); });
|
まとめ
$('#mySelect2').val("val").trigger('change');
で初期化
multiple
なら $('#mySelect2').val(["val1", "val2", ...]).trigger('change');
$('#mySelect2').val(null).trigger('change');
でクリア
その他・メモ
通常、クリアする場合には selectedIndex = -1
をしないといけない(っぽい)が、それもやらなくて良い(たぶん select2 の内部でやってくれてる)。
参考文献
関連記事