所以我在这里读到IE10及以上的清晰字段'x'解决方案
我的解决方案是在应用程序的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会响应。但到目前为止,我所有的解决方案都无法工作......或者工作但不是以我想要的方式工作。我不能简单地关闭兼容模式,因为我不能决定..
答案 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
的参考资料