我有一个编辑框,可以在我的html页面上接受电子邮件地址。
目前,我有一个javascript通话' onkeyup
'验证电子邮件地址是否正常。
用户输入时效果很好。
但是,如果我开始输入我的地址(我们将使用me@example.com
),我会从:
me@
我的自动填充程序为我提供了me@example.com',因为我之前使用过它。
当我从自动填充功能下拉菜单中选择时 - ' onkeyup
'没有开火。相反,' onchange
'火灾。
我需要两个人开火。作为suer类型,我想验证(onkeyup),但我还需要触发javascript' onchange'。但是,我不认为我应该解雇这两件事。有没有办法处理单个事件?
答案 0 :(得分:2)
您没有触发事件 - 浏览器是。你只是在倾听它们并在它们发生时采取行动。
不是在HTML中使用两个事件驱动的函数,而是使用适当的侦听器对任一事件执行一个函数:
$('#myInput').on('keyup change', function() {
// do validation
});
答案 1 :(得分:1)
我只会为输入禁用自动填充autocomplete="off"
。浏览器对自动完成的反应不同,所以除非您想事先测试浏览器,否则最好只关闭自动完成功能。
答案 2 :(得分:0)
您可以使用oninput
事件来组合这些事件。此事件也可以通过粘贴(ctrl + v)来雇用。
<input name="title" oninput="func()">
或者您也可以通过onchange
事件触发onkeyup
:
<input name="title" onkeyup="$(this).trigger('change')" onchange="func()">