使用jQuery检测表单输入上的自动完成

Rya*_*yan 32 javascript forms jquery autocomplete detect

我有一个表单,检测所有文本字段是否在每个keyup()和focus(); 如果它们全部有效,它将启用用户按下的提交按钮.但是,如果用户使用浏览器自动完成功能填写其中一个文本输入,则会阻止启用提交按钮.

有没有办法使用jQuery检测是否有任何输入已经改变,无论它如何被更改?

che*_*pus 25

您可以尝试使用on input检测基于文本的更改(除了ctrl和之类的键除外shift)<input>.

例如:

$(input).on('input', function() { 
    console.log($(this).val()); 
});
Run Code Online (Sandbox Code Playgroud)


Spy*_*cho 15

jQuery更改事件只会触发模糊.keyup事件将在您键入时触发.单击自动完成选项时都不会触发.我也在寻找一种检测方法,但我现在正在寻找

$(selector).bind("change keyup",function(){
    //Do something, probably with $(this).val()
});
Run Code Online (Sandbox Code Playgroud)

但它并没有完全解决问题......


avo*_*iva 12

我自己用过

$(selector).on("change keyup blur input", function() {});
Run Code Online (Sandbox Code Playgroud)

这在Chrome中起了作用.input是什么让它适用于自动完成.