绕过浏览器的自动完成功能

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/aqtata/article/details/80507270
<input type="password" name="pwd" readonly onfocus="this.removeAttribute('readonly');"/>

这是我找到的最简洁的实现方法,利用readonly属性锁住输入框,这样在页面渲染时浏览器就不会自动填入数据了。当输入框获得焦点时再移除只读属性,以便用户输入。

但是在实际使用中发现,这样并非完美,主要是readonly会和required冲突

<input type="password" name="pwd" readonly required onfocus="this.removeAttribute('readonly');"/>

这时只有readonly生效,如果此时用户直接提交表单而正好你的服务器没有对字段验证的话,可能就会引发500错误。

改进方案也很简单,我们将属性操作放到页面的ready事件中。

示例如下(用了jQuery)

<input type="password" name="pwd" autocomplete="new-password" readonly/>
$(function () {
    $('input[name=pwd]').removeAttr('readonly').attr('required', true);
});


猜你喜欢

转载自blog.csdn.net/aqtata/article/details/80507270