如何通过jQuery Keyup()检查电子邮件是否存在?

时间:2012-10-17 作者:zilj

我设置了一个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的地方。

在谷歌搜索了几次之后,听起来这可能是不可能的。有人能确认或提供解决方案吗?

谢谢

1 个回复
最合适的回答,由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);
希望有帮助!

结束

相关推荐

我可以在一个页面中包含Java脚本/jQuery吗?

我对Wordpress非常陌生,我已经提出要帮助一个使用它的项目。在我正在创建的新页面中,我需要使用javascript/jQuery动态写出html-它似乎不起作用?我相信我读到有一些特别的事情需要做,但我不明白。我试着改变$ 到jQuery, 但这也没用。<script type=\"text/javascript\"> $(document).ready(function(){ alert(\'hoi\'); jQuery.ajax({