Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 延迟keyup函数(如jquery和ajax验证)_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 延迟keyup函数(如jquery和ajax验证)

Javascript 延迟keyup函数(如jquery和ajax验证),javascript,jquery,ajax,Javascript,Jquery,Ajax,var validate\u email\u login=function() { 控制台日志(“验证电子邮件”); var item5=$(“#用户_email2”).val(); var item5=item5.toLowerCase(); 如果(项目5.length50) { $(“#errormsg6”).html(“电子邮件:6-50个字符”); } 其他的 { 如果(!emailformat.test(第5项)) { $(“#errormsg6”).html(“错误的电子邮件格式”)

var validate\u email\u login=function()
{
控制台日志(“验证电子邮件”);
var item5=$(“#用户_email2”).val();
var item5=item5.toLowerCase();
如果(项目5.length<6 | |项目5.length>50)
{
$(“#errormsg6”).html(“电子邮件:6-50个字符”);
}
其他的
{
如果(!emailformat.test(第5项))
{
$(“#errormsg6”).html(“错误的电子邮件格式”);
}
}
}
变量延迟=(函数(){
var定时器=0;
返回功能(cb、ms){
// ------------^
清除超时(计时器);
定时器=设置超时(cb,ms);
//-----------------^
};
})();
$(“#用户_email2”).keyup(函数(){
延迟(函数(){
验证电子邮件登录();
}, 1000);
});

您需要将回调传递到延迟函数中,并使用setTimeout调用它

函数验证\u电子邮件\u登录(){
//…东西
}
变量延迟=(函数(){
var定时器=0;
返回功能(cb、ms){
// -----------^
清除超时(计时器);
定时器=设置超时(cb,ms);
//-----------------^
};
})();
$(“#用户_email2”).keyup(函数(){
延迟(验证电子邮件登录,1000);
});


使用
设置超时
而不是
延迟
@MehdiDehghani请参见上文我创建了fiddle,虽然延迟正在发生,但函数未运行您的代码正在工作,请向像我这样的新手解释,回调可以是任何东西,也可以是ajax中使用的东西——在我的例子中,msgfunction正在运行,因为它显示的是console.log(“验证电子邮件”);在控制台中,但没有进行验证。我已经为此创建了js提琴。。请查看验证没有运行,并且它们没有显示在错误对话框中。抱歉,错误地调用了函数。。。我的错。。我是新手u seeHey@DragonFire您只需将对
validate\u email\u login
的引用直接传递到您的延迟函数,因为不需要参数。