在IE中忽略了autocomplete =“off”?

时间:2013-12-05 21:24:34

标签: asp.net forms internet-explorer checkbox autocomplete

我有一个带有复选框的表单,其“已检查”值是从数据库中的代码填充的。

想象一下,如果我有复选框1,2和3都设置为在数据库中检查。我加载页面,取消选中复选框3,然后将更改提交到数据库。现在在我的数据库中,选中复选框1和2,取消选中3。我刷新页面,它获取更新的数据库值,复选框具有正确的选中值。

这只适用于chrome和FF。在IE中,即使我取消选中复选框3,将更改提交到数据库并刷新,它仍然显示为已选中。我用ctrl + f5强制刷新,但仍然没有更新。将autocomplete =“off”添加到复选框和父表单都没有做任何事情。

2 个答案:

答案 0 :(得分:1)

此问题已在评论中得到解答,但答案中未提供相关答案。我试图在这里回答它,以便它对面临同样问题的所有其他用户都有用。

解决方案可以是:

一些浏览器通常认为连续的ajax调用没有请求更改,这个问题在IE 10中特别可重现。请求的响应为HTTP 304 Not Modified,请求未命中数据库。解决方案是使用ajaxSetupcache设置为false,如:

$(document).ready(function() {
  $.ajaxSetup({ cache: false });
});

注意:这将为会话中的所有ajax调用设置缓存false。

如果您不想为所有ajax调用禁用缓存,请在特定的ajax调用中使用cache: false

$.ajax({
         ...
         cache: false,
         ...
      });

答案 1 :(得分:0)

我认为使用javascript node.autocomplete = 'off'会更好。有时候会有所帮助。

并且不要忘记IE有时really ignored autocomplete,例如,IE11忽略autocomplete = off,输入类型=“密码”到keeps user in control