0

グリッドでsearchOnEnter: trueを宣言すると、グリッドで検索中に Enter キーを使用できるようになります。それにもかかわらず、Enter キーを押して検索を行うと、グリッドはまったくフィルタリングされません。ただし、同じアクションを 2 回繰り返すと、フィルターは 2 回目に機能します。なぜこれが起こっているのか分かりません。検索テキストを明確に入力しても、最初は空の文字列を送信している可能性があると考えられますが、これもわかりません。どんな助けでも大歓迎です。

-アダム

4

2 に答える 2

0

この問題を解決するには、jqGrid のソース コードにパッチを適用する必要があります。keydown イベント (検索ダイアログで Enter ボタンを押したときに実行される関数) のハンドラーを見つける必要があります。このコードは、ソース ファイルで「searchOnEnter」を検索すると見つかります。右のフラグメントは次のようになります。

    if (p.searchOnEnter || p.closeOnEscape) {
       $("#"+$.jgrid.jqID(IDs.themodal)).keydown(function (e) {
          var $target = $(e.target);
          if (p.searchOnEnter && e.which === 13 && // 13 === $.ui.keyCode.ENTER
             !$target.hasClass('add-group') && !$target.hasClass('add-rule') &&
             !$target.hasClass('delete-group') && !$target.hasClass('delete-rule') &&
             (!$target.hasClass("fm-button") || !$target.is("[id$=_query]"))) {

ここで、コード行$("#"+fid+"_search").focus().click(); を次の 2 つに分割する必要があります。

                $("#"+fid+"_search").focus();
                setTimeout(function(){
                   $("#"+fid+"_search").click();
                },0);

元のコードで終わる:

                return false;
          }

(こちらもご覧ください

于 2013-12-23T13:46:33.100 に答える