7

フォームの selectservices_ddで select2 プラグインを使用しています。ページに class のリンクがあります.js-autoselect。これをクリックすると、そのリンク タグの ID を取得し、クリックしたボタンに応じて select2 オプションを変更します。

value 属性は、リンクの idの<option>属性と一致します。以下のコードは値を正常に変更していますが、select2 は更新されておらず、まだ最初の選択が表示されています。

$('.js-autoselect').click(function(e){
    e.preventDefault();
    var option = $(e.target).attr('id').trim().toLowerCase(); // option =link1

    $('#services_dd option:selected').val(option);
    alert($('#services_dd option:selected').val()); // this alerts link1 which is correct

});

select2を更新する方法を知っている人はいますか

4

4 に答える 4

19

$("#services_dd").select2("val", option);

ドキュメントの Programmatic Access セクションを参照してください: http://ivaynberg.github.com/select2/#documentation

于 2012-12-21T09:27:31.413 に答える
1

実施例

@ scoota269 の回答に基づいて、この動作を示す次の JS Fiddle を作成しました: https://jsfiddle.net/robertmassaioli/ro2279ts/5/

これは、この作業を行う方法を理解するのに役立つはずです。

コード

JS Fiddle がシャットダウンされた場合に備えて:

$(function() {
    var select = $("#the-select");
    select.select2();

    $("#update").click(function() {
        // How to remove a value
        select.find("option[value=1]").remove();
        // How to add a value
        select.append("<option value='5'>Five</option>");
        select.select2();
    });

    $("#select").click(function() {
        // How to select a value
        var current = select.select2("val");
        current = current || [];
        current.push(2);
        select.select2("val", current);
    });
});
于 2015-06-06T04:37:54.017 に答える
-2

私はあなたが単にやるべきだと思います

$('#services_dd').val(option);
alert($('#services_dd').val());

それ以外の場合、コードでは、(選択要素の値ではなく) 選択したオプションの値属性のみを変更します。

于 2012-12-21T09:28:37.550 に答える