清除字段' x'在IE11企业模式或兼容模式下

时间:2014-08-14 07:55:10

标签: css internet-explorer jqgrid

所以我在这里读到IE10及以上的清晰字段'x'解决方案

  • 适用于IE10非兼容模式
  • 在Win7非兼容模式下使用IE11
  • 在Win8非兼容模式下不使用IE11
  • 无法在所有兼容模式下工作
  • 也不在IE11企业模式下工作。

我的解决方案是在应用程序的CSS中添加以下行

::-ms-clear {
    display: none;
}

我想知道是否有其他方法可以禁用清除字段'x'?我认为它应该在IE10 / 11配置的某处配置?

兼容性或企业模式中的明确字段使得像JqGrid这样的插件变得无法正常工作,尤其是在过滤器文本框中,使用clear字段清除Jqgrid的过滤器字段中的输入将不会触发jqgrid的过滤器函数

EDIT ---------------------------------------------- -----

如果我没有明白我的问题,我很抱歉。我开发的应用程序使用JqGrid显示数据,还允许用户过滤显示的数据。但在企业模式中,我看到只要在过滤器框中输入值,IE就会在输入上显示清除字段图标“x”。通常,当过滤器文本框(来自键输入)发生更改时,JqGrid将过滤显示的数据,即使我使用退格键擦除过滤器文本框中的输入,JqGrid也会检测到更改并正确显示数据。

但是使用IE的clear字段,当点击'x'来删除我在过滤器文本框上的输入时,JqGrid没有显示任何响应。我尝试使用click事件,这样当我点击'x'时,我希望JqGrid能识别我所做的点击,但我意识到JqGrid会在我尝试专注于过滤器文本框的那一刻回应,这不是我的意思想。

我尝试使用CSS擦除'x',这在演示中显示效果很好,但它在兼容性和企业模式下无效。

所以我在思考,而不是删除'x',为什么我只是这样做,以便当用户点击'x'时JqGrid会响应。但到目前为止,我所有的解决方案都无法工作......或者工作但不是以我想要的方式工作。我不能简单地关闭兼容模式,因为我不能决定..

2 个答案:

答案 0 :(得分:2)

如果伪元素::-ms-clear执行您想要的操作,那么您应该使用它。我不同意Win8中的IE11在非兼容模式下工作不正常。我个人更喜欢放置<meta http-equiv="X-UA-Compatible" content="IE=edge"/>来关闭HTML页面的兼容模式。就像你可以在the demo验证所有在IE10 / IE11 Win7 / Win8上正常工作。

答案 1 :(得分:0)

找到这个解决方案,使IE10及以上版本的清晰字段适用于JqGrid ..测试,它适用于非兼容/企业模式。

if (window.navigator.userAgent.match( /(MSIE|rv:11.0)/ )){
            var selectors = JSON.parse(sessionStorage.selectors);
            sessionStorage.selectors = "";

            $(selectors.join(', ')).bind("mouseup", function(){
                var $input = $(this),
                    oldValue = $input.val();

                if (oldValue == "") return;

                var filters = {groupOp: "AND", rules: []};

                setTimeout(function(){
                    var newValue = $input.val();
                    if (newValue == ""){
                        //Reloading the grid with newValue's value
                        filters.rules.push({field:$input[0].name, op:"bw", data:newValue});
                        $grid[0].p.search = true;
                        $.extend($grid[0].p.postData, {filters:JSON.stringify(filters)});
                        $grid.trigger("reloadGrid");
                    }
                }, 1);
            });
        }

使用Event fired when clearing text input on IE10 with clear icon

的参考资料