3

I have two fields in my form, I need handle event when browser changes value of them, my fields are username and password; I've used this $('input').on('input change',function(e){//...}), but when I select a user name in list that popped up by my browser, value of password changes but 'input' event of password not working in that case.

How can I handle that ?

Code:

HTML:

<form action="/">
  <input name="username" type="text" />
  <br />
  <input name="password" type="password" />
  <br />
  <input type="submit"/>
</form>

Js:

$('input[type="password"]').on('change keyup',function(event){
  console.log(event.type);
});

It's working when I'm typing in password field, but not working when browser auto complete is changing password value.

4

2 回答 2

2

这是浏览器行为,与脚本无关。我认为没有简单的方法可以解决这个问题。

一种解决方法是设置一个计时器来定期检查现场的变化。

另一种解决方法是设置onfocus捕获前值onblur事件以捕获后值并比较值是否更改。

如果在字段值更改时处理事件对您至关重要。autocomplete="off"我认为您应该通过在字段上指定来禁用浏览器自动完成,并可选择自己实现自动完成。

有关详细信息,请参阅此链接

于 2013-08-11T11:13:58.337 回答
0

应该$('input').on('change', function(e){//...})文档所说的那样

.on(事件 [,选择器] [,数据],处理程序(事件对象))

你也可以试试这个:

$('input[type=text], input[type=password]').on('change', function(e){//...})
于 2013-08-11T09:02:02.897 回答