3

複数選択 jquery ウィジェットのフィルター テキスト入力フィールドにフォーカスを設定する小さなスクリプトを作成しています。ドキュメントに基づいて、次のようにウィジェットのクリック イベントをサブスクライブできます。

// bind to event
$("#multiselect").bind("multiselectopen", function(event, ui){
    // event handler here
});

だから私はこれを試しました:

$("#MyStatusWidget").bind("multiselectopen", function(event, ui){
            // event handler here
            $(this).$(".ui-multiselect-filter").contents('input :text').focus());
        });

ウィジェットへのリンクは次のとおりです: http://www.erichynds.com/jquery/jquery-ui-multiselect-widget/

他のいくつかの方法 ($('').is(':text'); など) も試しましたが、フックを取得できません。

HTMLは次のとおりです。

<div class="ui-widget-header ui-corner-all ui-multiselect-header ui-helper-clearfix ui-multiselect-hasfilter">
<div class="ui-multiselect-filter">
Filter:
<input type="search" placeholder="Enter keywords">
</div>
<ul class="ui-helper-reset">
</div>

ありがとうございました

4

4 に答える 4

6

これは少し古いことは知っていますが、私の場合、ページにこれらのウィジェットがたくさんありました。だから私は完璧に機能する少し違うことをしました。

$("#MyStatusWidget").multiselect({
    open: function () {
        $(this).multiselect("widget").find("input[type='search']:first").focus();               
    }
});
于 2013-02-06T19:42:01.457 に答える
5

複数選択ウィジェットを作成するときは、次の「open」メソッドを追加するだけです。

$("#MyStatusWidget").multiselect({
    open: function () {
        $("input[type='search']:first").focus();                   
    }
});

IE10 クッパの場合:

$("#MyStatusWidget").multiselect({
    open: function () {
        $("input[type='text']:first").focus();                   
    }
});
于 2012-08-07T20:04:10.867 に答える
1

rrusnak の問題が存在するかどうかを確認するために、最初の 2 つの解決策を試していません。私のソリューションには、rrusnak が他の問題について言及している問題はありません。これは、ページ上の無制限の数のセレクターで動作し、複数選択フィルター システムを複数選択ウィジェットに実装するという Eric Hynds の推奨事項と共に単純な jQuery を使用します。

$("#MyStatusWidget").multiselect({
open: function () {
  $(this).multiselectfilter("widget").find('input').focus();
  }
  }).multiselectfilter({
  label: '',
  autoReset: true
});

クリーンで、他のウィジェット オプションと連鎖させることができ、入力フィルターを最初にクリックしなくてもすぐにテキスト入力が可能になります。

IMO Eric は、フィルタ スクリプトに自動フォーカスを含める必要がありました。ウィジェットでフィルタを使用すると、とにかく使用する必要があることを意味するからです。そのため、手動で入力フィールドに焦点を合わせなければならないことは、ユーザーにとって不必要なクリックです。

于 2014-05-04T17:52:37.457 に答える
0

上記の2つの答えは私にとってはうまくいきましたが、フィルターがフォーカスされているときにプラグインで多くのイライラすることがありました. 最も顕著なのは、矢印キーを使用してオプションを選択できなくなったことです。これにより、キーボード制御が実際に奪われます。

以下の私のgithubリンクで見つけることができる多くの変更を実装しました。

  1. フォームのタブ移動の問題を修正
  2. フィルタが選択されている間、矢印キーを使用してオプションを選択できます
  3. トラバース機能を、フィルタリングされたリストに適したものに変更しました。
  4. 上向き矢印を使用するときに (リストの先頭に移動するのではなく) 一度に 1 つの選択を上に移動するようにトラバース機能を変更しました。
  5. 'f' (または 'ctrl-f') を押すと、フィルター ボックスに再びフォーカスします。

これが、私と同じ問題を抱えている人の助けになることを願っています。変更は、通常の複数選択とフィルタ src ファイルの両方にあります。

https://github.com/rrusnak1/jquery-ui-multiselect-widget

于 2013-07-08T16:36:15.450 に答える