1


0

Enterキーを押したときにjqGrid navGrid検索が送信されない

「Enter / Return」キーが押されたときに検索ダイアログの検索ボタンを起動できるようにしたいのですが。 残念ながら、「savekey」オプションはフォームを送信せず、フォーム編集の編集および追加と同じ方法で送信します。

これが私が使用しているコードのスニペットです。

$("#list").jqGrid('navGrid', '#pager',
    {edit: true, add: true, del: true, search: true, view: true},

    ...

    {
        caption: "Search",
        closeAfterSearch: true,
        closeOnEscape: true,
        sopt: ['cn','eq'],
        savekey: [true, 13]
    },

これは、私が相談したform_editingドキュメントへのリンクです。

以下は、単一フィールド検索ドキュメントへのリンクです。

私はこの機能が存在することを示唆するものを見つけることができませんが、私は簡単に思えます。 いつものように、どんな助けや指示も大歓迎です。

4 Answer


2


次のhttp://www.trirand.com/jqgridwiki/doku.php?id=を検索するために実際に動作しない `savekey:[true、13]`オプションを置き換えると、問題が解決するように思えます。 wiki%3asinge_searching#options [beforeShowSearch]およびhttp://www.trirand.com/jqgridwiki/doku.php?id=wiki%3asinge_searching#options[onClose]イベントハンドル

beforeShowSearch: function(form){
    form.keydown(function(e) {
        if (e.which == 13) {
            $(".ui-search", form).click();
        }
    });
},
onClose: function(form){
    form.unbind('keydown');
}

この方法は、http://www.trirand.com/jqgridwiki/doku.php?id = wiki%3asinge_searching [単一フィールド検索]だけでなく、http://www.trirand.com/jqgridwiki/dokuでも機能します。 php?id = wiki%3aadvanced_searching [アドバンス検索]も。

「Enter」キーが入力フィールドでのみ機能するようにするには、「form.keydown」を「$( '。vdata'、form).keydown」に置き換え、「unbind」で対応する変更を加えます。


1


FireFoxでも同じ問題が発生しましたが、上記のソリューションはIEでも問題なく機能しました。 Firefoxで動作させるには、以下のようにクリックする代わりにフォーカス機能を使用する必要がありました。

beforeShowSearch: function (form) {
                        form.keydown(function (e) {
                            if (e.which == 13) {
                                $("#fbox_list_search").focus();
                            }
                        });
                    },


0


これはかなり役に立ちましたが、提供されたソリューションは私にとってはうまく機能していません。 提供されたコードを微調整し、現在は多少機能していますが、正しいデータを送信しているようには見えません。 Enterキーを押すたびに、実際に入力したものではなく、入力ボックスに「0」が送信されます。 何らかの理由で、searchStringをポストしていません。 私が使っているコードは次のとおりです。

beforeShowSearch: function(form){
  $(form).keydown(function(e) {
    if (e.keyCode == 13) {
      $("#fbox_cust_grid_search").click();
    }
  });
},
onClose: function(form){
  $(form).unbind('keydown');
}

ここで何が起きているのか、あなたの誰かが提案をしますか?

編集:興味深い、私は何かの前に(何か)を警告するとき .click() method, the data is posted perfectly. Any ideas?


0


次のコードを試してください。 私のために働く:

beforeShowSearch: function(form){
   $(form).keydown(function(e) {
      if (e.keyCode == 13) {
         setTimeout(function() {
            $("#fbox_cust_grid_search").click();
         }, 200);
      }
   });
   return true;
},
onClose: function(form){
   $("#fbox_cust_grid_search").unbind('keydown');
}

クリックメソッドの呼び出しが速すぎると問題があるようです。 グリッドに200msを与えて、検索の前に実行しなければならないことを実行するのが、トリックのようです。