Css 清除字段';x';论IE11企业模式还是兼容模式

Css 清除字段';x';论IE11企业模式还是兼容模式,css,internet-explorer,jqgrid,Css,Internet Explorer,Jqgrid,所以我在这里读到了IE10及以上版本的清晰字段“x”解决方案 在IE10不兼容模式下工作 在Win7不兼容模式下在IE11上工作 在Win8不兼容模式下不在IE11上工作 无法在所有兼容模式下工作 也不能在IE11企业模式下工作 我所指的解决方案是在应用程序的CSS中添加以下行 ::-ms-clear { display: none; } 我想知道是否有其他方法来禁用清除字段“x”?我认为应该在IE10/11配置中的某个地方配置它 不知何故,兼容性或企业模式中的clear字段会使J

所以我在这里读到了IE10及以上版本的清晰字段“x”解决方案

  • 在IE10不兼容模式下工作
  • 在Win7不兼容模式下在IE11上工作
  • 在Win8不兼容模式下不在IE11上工作
  • 无法在所有兼容模式下工作
  • 也不能在IE11企业模式下工作
我所指的解决方案是在应用程序的CSS中添加以下行

::-ms-clear {
    display: none;
}
我想知道是否有其他方法来禁用清除字段“x”?我认为应该在IE10/11配置中的某个地方配置它

不知何故,兼容性或企业模式中的clear字段会使JqGrid之类的插件无法正常工作,尤其是在filter文本框中,使用clear字段清除JqGrid的filter字段中的输入不会触发JqGrid的filter功能

编辑---------------------------------------------------

如果我没有把问题说清楚,我很抱歉。我开发的应用程序使用JqGrid显示数据,还允许用户过滤显示的数据。但在企业模式下,我看到每当在筛选框中键入值时,IE就会在输入上显示清除字段图标“x”。正常情况下,JqGrid会在filter文本框(来自按键输入)发生更改时过滤显示的数据,即使我用backspace擦除filter文本框中的输入,JqGrid也会检测到更改并适当显示数据

但在IE的clear字段中,当点击“x”删除过滤文本框上的输入时,JqGrid不会显示任何响应。我尝试使用click event,因此当我单击“x”时,我希望JqGrid能够识别我所做的单击,但我意识到JqGrid会在我尝试关注过滤器文本框时做出响应,这不是我想要的

我试着用CSS删除“x”,效果和你的演示一样好,但它在兼容性和企业模式下不起作用


所以我在想,为什么不删除“x”,让JqGrid在用户单击“x”时响应呢。但到目前为止,我所有的解决方案都失败了。。或者工作,但不是以我想要的方式。我不能简单地关闭兼容模式,因为这不是由我来决定的。

如果伪元素做了您想要的,那么您应该使用它。我不同意Win8中的IE11在不兼容模式下不能正常工作。我个人更喜欢用
关闭HTML页面的兼容性模式。您可以验证IE10/IE11 Win7/Win8上的所有工作是否正确。

找到了此项的解决方案,以使IE10及以上版本中的clear字段适用于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);
            });
        }

使用取自

的参考是的,它确实适用于不兼容模式。但不知何故,我的工作重点放在了兼容性和企业模式上,这让我感到有些困扰,因为我尝试的解决方案都没有在这两种模式上工作过。。当用户单击并清除字段时,JqGrid是否可能检测到“x”?现在的问题是,它清除了字段,但JqGrid不会响应。@FredA:对不起,我不明白JqGrid与问题的关系。你说的“JqGrid不会响应”是什么意思?您想要实现什么行为?您可以编写
focus
事件处理程序并执行一些操作。您可以使用属性来检测是否使用兼容模式(以及使用哪种模式,例如IE5、IE7等)。我仍然认为最好关闭你开发的所有HTML页面的兼容性模式。啊,如果我没有说清楚的话,很抱歉。我已经编辑了上面的问题。希望这次我能把问题弄清楚>