如何检测浏览器何时保存密码?

我试图检测浏览器何时将保存的用户名和密码放入输入字段。 我看过这篇文章 ,但我没有选择更改此function,其他解决方案也无效。

基本上,如果字段在加载时为空,我有一个禁用的登录按钮。 但是当浏览器填写输入时,它不会启用该按钮。 我正试图找出它是如何变化的。

我正在使用jQuery和JS。

我试过.change,on .ready,on .load等等。 它似乎发生在.load事件之后。

有谁知道解决这个问题? 我想避免使用任何类型的超时。

我认为没有办法检测浏览器是否有一些预先填充字段的内置function。

您可以使用启用按钮的计时器来解决问题,如果有的话。 像这样的东西:

setInterval(function (){ if($("#username").val()!=""){ $("#loginbutton").attr("enabled","enabled"); } },1000) 

关键是该字段将填充,而不会在该字段中有任何按键。

因此,如果您在输入字段上捕获.keypress以了解某个键是否被按下,那么如果您提交表单并发现尽管有值存在没有按键 – 那么您可以确定浏览器预先填充它。

如果您想在提交之前知道(在页面加载后不久),您需要检查一个间隔,该间隔看到尽管没有按键,值是否已更改。

正如@japrescott指出的那样,您可能还想检查.focus以防用户粘贴值。

没有测试过,但是你不能简单地将每个字段的默认值与页面加载后的每个字段的值进行比较(或者如果这是一个问题,则加载页面后的.2秒)?

拍摄Jquery .live()函数

 $('.element').live('load', function(){ enableLogin(); });