ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

jQueryプラグインChosenで選択肢の動的変更方法

3年前に記事を書いた、jQueryプラグインのChosenで、他の選択肢に選択結果により、選択肢を動的に変更しなければならくなりました。
ajya.hatenablog.jp

f:id:AJYA:20181031124820p:plain
unsplash-logoPankaj Patel

試した結果として、以下のようにすればできました。

// 選択肢削除
$('#select option').remove();

// 選択肢追加
$('#select').append($('<option>').text('選択して下さい。').attr('value', '0'));
$('#select').append($('<option>').text('選択肢1').attr('value', '1'));
$('#select').append($('<option>').text('選択肢2').attr('value', '2'));

//  選択状態設定とChosenの状態を更新
$('#select').val('1').trigger('chosen:updated');

選択肢の削除だけを行って、あとは何もしなかったときにどうなるか試していませんが、
.trigger('chosen:updated')
を行わないと、反映されない可能性があります。
ソースコードを見ていませんが、.trigger('chosen:updated')で再構築をしているのではないかと予想しています。