我该如何解决这类错误:“未捕获的ReferenceError:check_email未定义onblur”

时间:2012-08-29 17:02:32

标签: php jquery ajax

<!DOCTYPE HTML>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Amateur</title>
    <link rel="stylesheet" href="css/reset.css" type="text/css">
    <script src="http://code.jquery.com/jquery-1.8.0.js">
        function check_email()
        {
            var email=$("#txtEmail").val();
            $.ajax(
            {
                type:"POST";
                url:"index.php";
                data:"email="+email,
                success:function(msg)
                {
                    $("#chkEmail").html(msg);
                }
            });

            return false;
        }
    </script>
</head>

<body>
<form method="post">
    <label for="txtEmail">E-mail:</label>
        <input id="txtEmail" name="email" type="email" onblur="return check_email()">
    <label id="chkEmail" for="txtEmail"></label>
    <?php

    if(isset($_POST['email']))
    {
        $user='root';

        $pdo=new PDO('mysql:host=localhost;dbname=class;charset=utf8',$user);

        $email=$_POST['email'];

        $stmt=$pdo->prepare('SELECT email from tbl_users WHERE email=:email LIMIT 1');
        $stmt->execute(array(':email'=>$email));

        if($stmt->rowCount()>0)
        {
            echo 'E-mail already use.';
        }
        else
        {
            echo 'E-mail not use.';
        }

    }

    ?>
</form>
</body>
</html>

我仍然是PHP和JQuery的入门者我想知道如何修复这种类型的错误?我从萤火虫检查它。流程是在用户完成键入电子邮件后,它将自动从数据库中检查是否存在。并且预期的输出不会显示在我的页面中。

6 个答案:

答案 0 :(得分:2)

你在选择器上缺少引号,用分号而不是逗号等分隔ajax函数中的参数。

    function check_email() {
        var email=$("#txtEmail").val();
            $.ajax({
                type:"POST",
                url:"index.php",
                data: {email: email},
                success:function(msg) {
                    $("#chkEmail").html(msg);
                }
            });
            return false;
       }

答案 1 :(得分:1)

添加另一个<script>标记,这不是添加js源文件的正确方法,也是相同标记中的代码。

<script src="http://code.jquery.com/jquery-1.8.0.js"></script>
<script>
        function check_email()
        {
            var email=$("#txtEmail").val();
            $.ajax(
            {
                type:"POST";
                url:"index.php";
                data:"email="+email,
                success:function(msg)
                {
                    $("#chkEmail").html(msg);
                }
            });

            return false;
        }
    </script>

答案 2 :(得分:0)

<script src="http://code.jquery.com/jquery-1.8.0.js">
    function check_email()
    {
        var email=$("#txtEmail").val();
        $.ajax(
        {
            type:"post",
            url:"index.php",
            data:"email="+email,
            success:function(msg)
            {
                $("#chkEmail").html(msg);
            }
        });

        return false;
    }
</script>

答案 3 :(得分:0)

修改

$.ajax(
        {
            type:"post";
            url:"index.php";
            data:"email="+email,
    success:function(msg)
                    {
                        $(#chkEmail).html(msg);
                    }
             **TO**
$.ajax(
        {
            type:"POST",
            url:"index.php",
            data:{email:email},
success:function(msg)
                {
                    $('#chkEmail').html(msg);
                }

答案 4 :(得分:0)

    <script src="http://code.jquery.com/jquery-1.8.0.js"></script>
    <script>
      var checkEmail= function()
        {
            var email=$("#txtEmail").val();
            $.ajax(
            {
                type:"POST",
                url:"index.php",
                data:"email="+email,
                success:function(msg)
                {
                    $("#chkEmail").html(msg);
                }
            });

            return false;
        }
    </script>
</head>

<body>
<form method="post">
    <label for="txtEmail">E-mail:</label>
        <input id="txtEmail" type="email" onblur="javascript:checkEmail();">
    <label id="chkEmail" for="txtEmail"></label>

</form>
</body>

添加到onblur="javascript:checkEmail();并且我使函数有点不同,将其声明为var。

答案 5 :(得分:0)

将jquery源放在单独的脚本上。确保为脚本添加了结束标记(不是自动关闭标记)。

使用逗号作为参数,而不是分号。

试试这个:

<script src="http://code.jquery.com/jquery-1.8.0.js"></script>
<script type="text/javascript">
    function check_email()
    {
        var email=$("#txtEmail").val();
        $.ajax(
        {
            type:"POST",
            url:"index.php",
            data:"email="+email,
            success:function(msg)
            {
                $("#chkEmail").html(msg);
            }
        });

        return false;
    }
</script>