182

Oleg のselect2 demoを使用していますが、ドロップダウン メニューで現在選択されている値を変更できるかどうか疑問に思っています。

たとえば、読み込まれた 4 つの値が"Any", "Fruit", "Vegetable", "Meat"で、ドロップダウン リストのデフォルトがである場合、JqGrid イベントで"Any"それを変更するにはどうすればよいでしょうか。"Fruit"loadComplete

これは可能ですか?

4

16 に答える 16

137

select2 ドキュメントを見ると、以下を使用して値を取得/設定します。

$("#select").select2("val"); //get the value
$("#select").select2("val", "CA"); //set the value

@PanPipes は、これが 4.x で変更されたことを指摘しています (以下で彼に賛成票を投じてください)。val直接呼び出されるようになりました

$("#select").val("CA");

したがって、jqGrid 内で、loadComplete探している値を取得してから、selectbox の値を設定できます。

ドキュメントからの通知

このメソッドを使用するには、オプションで initSelection 関数を定義する必要があることに注意してください。これにより、Select2 は、val() で渡されたオブジェクトの ID を、選択をレンダリングするために必要な完全なオブジェクトに変換する方法を認識します。select 要素にアタッチする場合、この関数は既に提供されています。

于 2013-10-28T16:25:25.293 に答える
32
this.$("#yourSelector").select2("data", { id: 1, text: "Some Text" });

これは役に立ちます。

于 2014-07-08T07:05:55.547 に答える
17

新しいvalue='newValue'とを追加するtext='newLabel'場合は、次のコードを追加する必要があります。

  1. に新しいオプションを追加<select>:

    var opt = "<option value='newValue' selected ='selected'>" + newLabel+ " </option>";
    $(selLocationID).html(opt);
    
  2. 選択した値への変更のトリガー<select>:

    $(selLocationID).val('newValue').trigger("change");
    
于 2016-01-12T02:19:36.320 に答える
12

2 つのオプションがあります。@PanPipes の回答に記載されているように、次のことができます。

$(element).val(val).trigger('change');

これは、変更イベントにカスタム アクションがバインドされていない場合にのみ許容される解決策です。この状況で使用する解決策は、select2 の表示された選択を更新する select2 固有のイベントをトリガーすることです。

$(element).val(val).trigger('change.select2');
于 2016-11-10T11:31:25.563 に答える
9

select2で選択された文字列オプションの設定に問題があります:

オプション: "option string1 /option" を使用:

$('#select').val("string1").change(); 

しかし、値を持つオプションを使用: オプション値 "E" string1 /option :

$('#select').val("E").change(); // you must enter the Value instead of the string

これが同じ問題に苦しんでいる人に役立つことを願っています。

于 2016-08-05T15:50:36.683 に答える