3

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

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

我正在使用 jQuery 和 JS。

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

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

4

4 回答 4

1

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

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

setInterval(function (){
 if($("#username").val()!=""){
  $("#loginbutton").attr("enabled","enabled"); 
 }
},1000)
于 2012-11-02T14:54:27.563 回答
0

关键是该字段将被填充,而该字段中没有任何按键。

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

如果您想在提交之前知道(在页面加载后不久),您需要在一个间隔上运行检查,看看值是否在没有按键的情况下发生了变化。

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

于 2012-11-02T14:50:13.627 回答
0

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

于 2012-11-02T14:56:04.530 回答
-1

试一试Jquery .live() 函数

$('.element').live('load', function(){
  enableLogin();
});
于 2012-11-02T15:06:24.877 回答