我正在使用jquery在输入上开发占位符文本,当输入获得焦点时会稍微消失,并在用户输入时完全消失 . 这部分工作正常 . 因此,为了避免与保存的文本冲突,我将代码包装在:
if(!$($input).val()) {
...create placeholder, set up rules for fading it, etc...
}
例如,如果用户具有已保存的密码,则在Firefox中,浏览器将检测到输入具有值,然后不创建占位符文本 .
但是,在Chrome中,Chrome在页面“完成”加载后才会加载保存的值...这意味着它会检测到输入为空,创建占位符文本,然后在加载页面后放置已保存的内容输入中的值 - 导致占位符和密码在彼此之上 .
如何检测Chrome填写表单以避免这种不幸的重叠?
1 回答
最后,我注意到Chrome在自动填充时不会触发任何类型的事件,但是如果你等到window.load,然后检查是否有任何输入有-webkit-autofill,那么你可以检查它们 . 你可以看到我也在使用debouncer(Ben Alman - http://benalman.com/projects/jquery-throttle-debounce-plugin/)再等待200毫秒,甚至在window.load之后它有时还没有放入自动填充文本......