Yii的。 GridView过滤器在IE8和Opera中不起作用(Firefox很好)

时间:2012-05-28 08:01:23

标签: internet-explorer gridview yii

使用Yii框架开发网站。

当我在GridView过滤器输入框中键入要搜索的关键字然后点击Enter时 - 表单未提交给服务器。 但是点击Tab或在输入字段外单击鼠标 - 确实有效。

问题出在IE和Opera中。 Firefox很好。

修改

dInGd0nG建议this forum topic针对类似问题采取解决方法,但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

我想出了这个,以便IE和Opera在点击Enter键时发送过滤器请求。

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});
        }
    });
} 

但它有点难看。

1 个答案:

答案 0 :(得分:0)

这是jquery的问题,如here所述。那个页面也有一个工作。看看这个forum post