jQuery:对浏览器自动填充做出反应

我有两个表单元素,一个email和一个password 。 只有在email元素中输入了某些内容时,才必须显示password元素。 也就是说,仅当email不为空时。

  

如您所见,我正在处理三个事件:

  • onfocus:这样当焦点进入电子邮件元素时我会做出反应
  • onblur:这样当焦点离开电子邮件元素时我会做出反应
  • onchange:这样当电子邮件元素发生变化时我会做出反应

实际上,我只想在电子邮件发生变化时运行脚本。 我不关心焦点,但我无法处理一般的更改事件。

此外,这是我的主要问题,我无法对浏览器自动填充表单时生成的事件做出反应。 有这样的事件吗? 我该怎么处理?

初始页面呈现时发生浏览器自动填充。 您是否尝试在“onReady”回调中检查字段? 请注意,此事件仅由Jquery等更高级别的实现提供,而不是由浏览器直接提供。

使用jquery进行“就绪”回调的示例:(已更新以反映注释)

 $(function() { setTimeout(function() { $("#email").trigger('change'); }, 200); }); 

还有一篇文章解释了“自己动手”: http : //dustindiaz.com/smallest-domready-ever

您可以尝试禁用浏览器自动完成function;

 

要么

  

注意。 第一个是HTML5

自动完成属性