113

Chosen プラグインを使用して、選択で現在選択されているオプションを変更しようとしています。

ドキュメントでは、リストの更新と、オプションが選択されたときにイベントをトリガーすることについて説明していますが、現在選択されている値を外部から変更することについては (私が見ることができる) 何もありません。

コードと選択を変更する方法を示すために、jsFiddle を作成しました。

$('button').click(function() {
    $('select').val(2);
    $('select').chosen().val(2);
    $('select').chosen().select(2);
});
4

4 に答える 4

226

ドキュメントの「Chosenを動的に更新する」セクションから:フィールドで「chosen:updated」イベントをトリガーする必要があります

$(document).ready(function() {

    $('select').chosen();

    $('button').click(function() {
        $('select').val(2);
        $('select').trigger("chosen:updated");
    });

});

注:1.0より前のバージョンでは、次のものが使用されていました。

$('select').trigger("liszt:updated");
于 2012-01-23T23:40:34.517 に答える
48

私の回答は遅れていますが、上記のすべての回答で見逃されている情報を追加したいと思います。

1)選択した選択で単一の値を選択する場合。

$('#select-id').val("22").trigger('chosen:updated');

2) 複数選択選択を使用している場合は、一度に複数の値を設定する必要がある場合があります。

$('#documents').val(["22", "25", "27"]).trigger('chosen:updated');

次のリンクから収集した情報:
1)選択したドキュメント
2)選択した Github ディスカッション

于 2016-02-21T13:59:27.577 に答える
1

複数のタイプの選択の場合、および/または既に選択されている項目を 1 つずつドロップダウン リスト項目内で直接削除する場合は、次のようなものを使用できます。

jQuery("body").on("click", ".result-selected", function() {
    var locID = jQuery(this).attr('class').split('__').pop();
    // I have a class name: class="result-selected locvalue__209"
    var arrayCurrent = jQuery('#searchlocation').val();
    var index = arrayCurrent.indexOf(locID);
    if (index > -1) {
        arrayCurrent.splice(index, 1);
    }
    jQuery('#searchlocation').val(arrayCurrent).trigger('chosen:updated');
});
于 2019-03-05T17:18:21.013 に答える