12

イベント時に select2 拡張コントロールのプレースホルダーを変更したいと考えています。

だから私はこれを持っています...

<select id="myFoo" placeholder="Fight some foo...">

...その後、強化されます:

init: function(){
   $('#myFoo').select2();
},

...これで、正しいプレースホルダーができました。

しかし、イベントに反応してプレースホルダーをクリアしたい...

someButtonPress: function(){
//   $('#myFoo').placeholder("");
//   $('#myFoo').attr('placeholder', "");
//   $('#myFoo').select2('placeholder',"");
//   $('#myFoo').select2({placeholder:""});
//   none of these work
}

これはとても基本的なようですが、私は困惑しています。

ドキュメントには何も見つかりません。私は間違った場所を探していますか?

4

8 に答える 8

7

プレースホルダーを動的に変更する場合は、HTML に設定しないでください。

<select id="myFoo">

jQueryにセットする

$('#myFoo').select2({
   placeholder: "your placeholder"
});

次に、このように更新します

someButtonPress: function(){
$('#myFoo').select2({
    placeholder: "change your placeholder"
  });
}

それは私のために働く、それが役立つことを願っています。

于 2016-06-21T06:38:50.807 に答える
4

Select2 のプレースホルダーをリモート データ (AJAX/JSONP) で更新するには、次のコードを使用します。

$input = $("input#e7");
$input.attr("data-placeholder", "New placeholder");
var select2 = $input.data("select2");
select2.setPlaceholder();

ブロックスの応答へのクレジット。

于 2014-09-20T19:29:13.827 に答える
3

プレースホルダーを更新する別の方法は、select 要素に "placeholder" 属性を設定し、select2() を再度呼び出すことです。

$('#IdForSelectElement').attr('placeholder', 'New Placeholder Text').select2();

最初に select2 にオプションを渡した場合は、それらを再度渡す必要があることに注意してください (または、$.fn.select2.defaults を使用してデフォルト オプションを設定するだけです)。

于 2013-07-02T20:48:52.990 に答える
0

オプションも動的に変更する場合は、プレースホルダーを有効にするために追加の空のオプションをキューに入れる必要があります。例えば:

response.unshift({id: '', text: ''});
$('#elem).select2({placeholder: 'Select..', data: response}); 
于 2018-05-01T18:25:00.510 に答える
0

動作は、使用している Select2 のバージョン (v3.5.1 を使用しています) によって異なると思いますが、プレースホルダーをオンデマンドで変更するには、少し異なるアプローチを取る必要がありました。私の場合、セレクターは別のセレクターの値に基づいて提示されるオプションを変更します。つまり、プレースホルダーは新しいデータ セットで変更する必要があります。

これを機能させるには、HTML 入力要素内のプレースホルダーへの参照をすべて削除する必要がありました。

<input type="text" class="form-control span10">

次に、Javascript で、要素を正しいオプションでロードするたびに、data()関数を介してプレースホルダーを更新する必要がありました。

selector.data('placeholder', placeholder);
selector.select2({ data: new_data_set, tags: true });

それは今では毎回うまくいくようです。

于 2016-07-24T16:07:01.793 に答える