清空页面刷新后浏览器自动填充 - 这是一个错误吗?

时间:2014-05-14 19:36:40

标签: javascript jquery html

使用搜索的输入字段。然后,清空该字段以清除搜索。但是当用户刷新页面时,该字段在输入字段中再次具有搜索项。这似乎是由于基于每个浏览器的自动完成设置。通常情况下,自动完成功能很好,但是清空字段应该覆盖该值,不应该吗?

这似乎是一个应该提交给Chrome和IE以及Safari的错误(Firefox似乎没有这个问题)。但是吗?

或者有没有办法在用户清除输入时正确清除该值?我们不想禁用自动填充。

我在我的搜索清除功能中尝试了$('myinput')。prop('defaultValue','')并且没有用。也就是说,属性已更改,但刷新页面时,之前的值再次出现在输入字段中。

2 个答案:

答案 0 :(得分:1)

有时候我会在Chrome和Safari上发现这种奇怪的行为,当中有相同格式的密码字段时。我想,浏览器会查找密码字段以插入保存的凭据。然后它自动填充(只是猜测由于观察)最近的textlike-input字段,它出现在DOM中的密码字段之前。由于浏览器是最后一个实例而您无法控制它,有时甚至autocomplete = off也不会阻止填写凭据。这个readonly-fix对我有用。

 <!-- fix browser password fill in: 
     set readonly and set writeble on focus (click and tab) -->
 <input type="search" readonly  
     onfocus="$(this).removeAttr('readonly');"/>

答案 1 :(得分:0)

您可以在页面加载事件中清空文本框,如下所示。

$( document ).ready(function() {
 $('#myinput').prop('value','')
});