我设置了一个jQuery键控延迟函数来检查输入字段中键入的电子邮件。
在使用alert(\'Key pressed!\');
但我想让它说,例如,“是的,这封电子邮件与用户关联”或“对不起,这封电子邮件不在我们的数据库中”,而不提交任何页面请求。
var delay = (function(){
var timer = 0;
return function(callback, ms){
clearTimeout (timer);
timer = setTimeout(callback, ms);
};
})();
$(\'input\').keyup(function() {
delay(function(){
// check email exists and output result
// Can I use PHP here?
// Can ajax/json help?
}, 500 );
});
我尝试使用php进行检查,但这是在jQuery之前呈现的,当然,jQuery是我存储电子邮件var的地方。
在谷歌搜索了几次之后,听起来这可能是不可能的。有人能确认或提供解决方案吗?
谢谢
最合适的回答,由SO网友:Mateusz Michalik 整理而成
我将使用一个AJAX请求来执行查找的PHP脚本,在文档准备就绪后,jQuery端可能会出现类似的情况:
// jquery
$(\'#email-input\').live(\'change\', function() {
//ajax request
$.ajax({
url: "email_check.php",
data: {
\'email\' : $(\'#email-input\').val()
},
dataType: \'json\',
success: function(data) {
if(data.result) {
alert(\'Email exists!\');
}
else {
alert(\'Email doesnt!\');
}
},
error: function(data){
//error
}
});
});
在上面的例子中,一旦PHP完成了基于地址的电子邮件检查(例如电子邮件检查),就必须返回json数据。php将包含:
// get email passed via AJAX
$email = $_GET[\'email\'];
// do check
if ( email_exists($email) ) {
$response->result = true;
}
else {
$response->result = false;
}
// echo json
echo json_encode($response);
希望有帮助!