Yii フレームワークでサイトを開発しています。
GridView フィルター入力ボックスに検索するキーワードを入力してヒットEnter
すると、フォームがサーバーに送信されません。ただし、入力フィールドの外側でマウスを叩いTab
たりクリックしたりしても機能します。
問題は IE と Opera にあります。Firefox は問題ありません。
編集
dInGd0nG
同様の問題の回避策でこのフォーラムのトピックを提案しましたjquery.yiigridview.js
が、その回避策の投稿以降、コードが変更されました。on()
の代わりに関数を使用するようになりlive()
ました。
現在、コードはかなり異なっています。自分で新しい回避策を思いつくことができるかどうかはわかりません。誰かがそのパッチを現在のものに適応させることはできますjquery.yiigridview.js
か?
したがって、私が理解している限り、これはフィルター入力の送信を処理する部分です。
$(document).on('change', inputSelector, function () {
var data = $(inputSelector).serialize();
if (settings.pageVar !== undefined) {
data += '&' + settings.pageVar + '=1';
}
$('#' + id).yiiGridView('update', {data: data});
});
Firefox で動作し、IE や Opera では動作しません。
それを修正する方法はありますか?
編集2
これを思いついたのは、Enter
キーを押すとIEとOperaがフィルターリクエストを送信するようにするためです。
if($.browser.msie || $.browser.opera) {
$(document).on('keypress', inputSelector, function(event){
if(event.keyCode == 13) {
var data = $(inputSelector).serialize();
if (settings.pageVar !== undefined) {
data += '&' + settings.pageVar + '=1';
}
$('#' + id).yiiGridView('update', {data: data});
}
});
}
しかし、それはちょっと醜いです。