Select2を非表示または表示したいのですが、APIにメソッドが見つかりません。次のように、親を非表示にして回避策を使用しています:
$(document).on('change', '.country', function () {
if ($(this).val() == $(this).data('current-countryCode')) {
$('#states').parent().show();
}
else {
$('#states').parent().hide();
}
});
しかし、誰かが助けることができるかどうか、またはそのようなメソッドがAPIに存在するかどうかを知りたいです。
同様のことを行いますが、開始点から常に次のノードであるselect2コンテナーを非表示にします。
$(document).on('change', '.country', function () {
if ($(this).val() == $(this).data('current-countryCode')) {
$('#states').next(".select2-container").show();
}
else {
$('#states').next(".select2-container").hide();
}
});
だから私はあなたが持っているのと同じアプローチを取っている
これは私のために働いた..
jQuery("#my-select2").select2().next().hide();
問題は、select2ドロップダウンに関連付けられているすべてのアイテム(プラグインがマジックを実行するために生成するすべて)を非表示にする必要があることです。
Select2ドロップダウンを含むdivを使用して解決し、このdivを表示/非表示にしました。
もう1つの回避策-作成時にselect2オブジェクトにクラスを追加できます
$("#user-box").select2({
containerCssClass : "show-hide"
});
...そして、必要なときに非表示にします
$(".show-hide").parent().parent().hide();
4.0.6を使用しています
https://select2.org/programmatic-control/methods
閉じる
$('#YourId').select2('close');
開く
$('#YourId').select2('open');