我正在使用这些事件来尝试评估表单输入,但如果表单由浏览器自动填充,则这些事件不会触发。如何在自动填充中触发事件?
答案 0 :(得分:3)
我知道这是一个很老的问题,但我在使用keyup函数后使用e.preventDefault()解决了同样的问题。
$("#email").keyup(function (e) {
e.preventDefault();
通过这种方式,如果您选择通过浏览器自动填充输入建议,它会注意到。当您在建议中单击鼠标时问题仍然存在,但如果在选中它后按任意键,它仍然可以正常工作。
最终解决方案
我在stackoverflow上发现了这篇文章:https://stackoverflow.com/a/24746108/3481005
并使用.on("输入")就可以了!
$("#email").on("input",function (e) {
答案 1 :(得分:2)
遗憾的是,无法检测到浏览器自动填充。相反,例如,使用setInterval
以相当高的频率运行函数,该函数检查原始值(或空)是否与输入值匹配并以此方式触发响应。如果您不想这样做,那么您可能是SOL,因为浏览器甚至不会触发.change
,并且任何事件很可能都不符合跨浏览器标准。
您也可以在表单提交上运行验证事件,这应该同样有效。
答案 2 :(得分:0)
您可以通过绑定.click()
和/或.dblclick()
事件来伪造所需的行为。
不能保证,但如果他们决定批准"那么你可能会额外点击鼠标。通过从框中选择自动完成功能。