我正在尝试创建一个检查输入字段有效性的函数,但我遇到了一个问题,即如果我输入得太快然后点击选项卡,它不会触发事件并且该字段未被验证. 我尝试了一些 keyup、keydown、blur、focus 和 focusout 的组合,但没有任何效果。
我以前使用过模糊,但模糊的问题在于,在他们的电子邮件地址的最后输入中,它不会触发,因为他们不应该远离电子邮件并模糊框。
这是我目前正在使用的代码。它在我等待时有效,但如果我输入“John”然后立即点击选项卡,它不会验证它。
$(function()
{
var timer;
// First name
$('input[name="firstName"]').on('keydown',function(event)
{
clearTimeout(timer);
timer = setTimeout(function()
{
validate(/^[A-Za-z]*$/, 'firstName', 'firstName')
}, 800);
});
// Last name
$('input[name="lastName"]').on('keydown',function(event){
clearTimeout(timer);
timer = setTimeout(function()
{
validate(/^[A-Za-z]*$/, 'lastName', 'lastName')]
}, 800);
});
// Email
$('input[name="email"]').on('keydown',function(event){
clearTimeout(timer);
timer = setTimeout(function()
{
validate(/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/, 'email', 'email')
}, 800);
});
}
关于我应该做什么的任何想法?