Oleg のselect2 demoを使用していますが、ドロップダウン メニューで現在選択されている値を変更できるかどうか疑問に思っています。
たとえば、読み込まれた 4 つの値が"Any", "Fruit", "Vegetable", "Meat"
で、ドロップダウン リストのデフォルトがである場合、JqGrid イベントで"Any"
それを変更するにはどうすればよいでしょうか。"Fruit"
loadComplete
これは可能ですか?
Oleg のselect2 demoを使用していますが、ドロップダウン メニューで現在選択されている値を変更できるかどうか疑問に思っています。
たとえば、読み込まれた 4 つの値が"Any", "Fruit", "Vegetable", "Meat"
で、ドロップダウン リストのデフォルトがである場合、JqGrid イベントで"Any"
それを変更するにはどうすればよいでしょうか。"Fruit"
loadComplete
これは可能ですか?
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 要素にアタッチする場合、この関数は既に提供されています。
this.$("#yourSelector").select2("data", { id: 1, text: "Some Text" });
これは役に立ちます。
新しいvalue='newValue'
とを追加するtext='newLabel'
場合は、次のコードを追加する必要があります。
に新しいオプションを追加<select>
:
var opt = "<option value='newValue' selected ='selected'>" + newLabel+ " </option>";
$(selLocationID).html(opt);
選択した値への変更のトリガー<select>
:
$(selLocationID).val('newValue').trigger("change");
2 つのオプションがあります。@PanPipes の回答に記載されているように、次のことができます。
$(element).val(val).trigger('change');
これは、変更イベントにカスタム アクションがバインドされていない場合にのみ許容される解決策です。この状況で使用する解決策は、select2 の表示された選択を更新する select2 固有のイベントをトリガーすることです。
$(element).val(val).trigger('change.select2');
select2で選択された文字列オプションの設定に問題があります:
オプション: "option string1 /option" を使用:
$('#select').val("string1").change();
しかし、値を持つオプションを使用: オプション値 "E" string1 /option :
$('#select').val("E").change(); // you must enter the Value instead of the string
これが同じ問題に苦しんでいる人に役立つことを願っています。