2016-05-20 9 views
1

select2をロードした<select>要素があります。その後、要素に値を入れるajax呼び出しを行い、次に$("#elem").trigger("change.select2")を呼び出して、新しい<option>を表示させます。ユーザーが検索ボックスに入力した場合は、ドロップダウンが閉じられ、検索フィールドが空になります。私がしたいことは、再起動することなくユーザーが入力を続けることです。これを行う方法はありますか?現在の状態を変更せずにselect2にオプションを追加する

答えて

0

残念ながら、私は信じていません。これはブラウザで定義された動作です。実際には、開いているアイテムにアイテムを追加すると、さまざまなブラウザや異なるブラウザバージョンでも動作が異なります。<select>

jQuery UI's SelectmenuSelect2のような選択的なコンポーネントを試すこともできます。彼らは実際のものではありません<select>のように振る舞いますが、実際のカスタムJSコンポーネントです。これにより、動作をより詳細に制御できます。

+1

私はすでにSelect2を使用しています。ユーザーがドロップダウンを開き、新しいオプションで更新されたときに検索テキストを入力するようなものはすべてリセットしないほうがいいでしょう。 – idlackage

+0

ああ、申し訳ありませんが、私はその細部には注意を払っていませんでした...ドキュメントはそれを行う方法について何の示唆もしていません。おそらくライブラリのソースを調べる必要があります。 –

0

<select>要素はすべてDOMから取得されるため、基本的には動的データと同じではないようですので、これを回避する唯一の方法は<input>要素を代わりに使用することです。次のコードは、私が何をしたいん:しかし、これは代わりに<select>を使っに関して100%の答えではありません

<input type="hidden" id="elem" /> 

var arr = []; 

$("#elem").select2({ 
    data: { results: arr } 
}); 

$.ajax({ 
    ... 
    success: function(data) { 
     arr = data; 
    } 
}); 

ので、(たぶん)より関連性の答えがやって来るまで、私は未承認、これを残します。

関連する問題