69

ページの読み込み時にselect2ボックスをフォーカスされた状態で表示しようとしています。私は次のことを試しました:

$('#id').select2('focus');
$('#id').trigger('click');
$('#id').trigger('focus');

最初の行だけが効果があるようで、select2 フィールドにフォーカスがありますが、検索フィールドを表示し、検索文字列を入力できるようにするには、追加のキーを押す必要があります。

したがって、ページを読み込んで「Search」と入力し始めると、「S」で検索ボックスが開き、残りのキーがそこに入力されるため、「earch」を検索することになります。

4

13 に答える 13

149

Select2のドキュメントによると:

$('#id').select2('open');

必要なものはすべて揃っているはずです。

ドキュメントProgrammatic Accessセクションにあります。

于 2013-05-20T00:56:46.380 に答える
36

これは、リリース 3.4.2 で機能します。いつ実装されたのか正確にはわかりません。

$('#id').select2('focus');
于 2013-09-16T17:39:32.847 に答える
9

Select2 は独自の入力を作成するので、次のようにしてみてください。

$(window).load(function(){
  $('#id').prev('.select2-container').find('.select2-input').focus();
});
于 2013-05-20T00:55:28.733 に答える
0

select2 としてテキストフィールドがあり、次のスニペットを使用して、テキスト入力でカーソルをアクティブにしてフォーカスしました。他のすべてのオプションは、select2 オプションしか開いていなかったため、機能しませんでしたが、期待される動作を生成しませんでした。

$('#s2id_autogen1').click()
$('#s2id_autogen1').focus()

于 2014-11-21T12:07:22.600 に答える
0

Dan-Nolan によって既に十分に回答されていますが、Select2 を初めて使用する場合は、関数を呼び出す前に、html オブジェクトを select2 で初期化する必要があることに注意してください。

したがって、最終的なコードは

$('#id').select2();

$('#id').select2('open');
于 2016-05-18T04:03:14.597 に答える
0

私は他の2つの答えを試しましたが、おそらくjsonを介してコントロールにデータを入力し、最初は単なる隠し入力であるため、プログラムによるopenメソッドは効果がありませんでした。

ただし、次のことは私にとってはうまくいきました:

$(document).ready(function() 
{     
    $('#s2id_autogen1').focus();
});

なんらかの理由でセットアップに同じ ID が表示されない場合は、select2-focusserクラスがアタッチされているコントロールを探します。

于 2013-08-12T19:40:42.240 に答える