如何修复这种类型的错误:“未捕获的引用错误:check_email未在模糊中定义”


How can i fix this type of error: "Uncaught ReferenceError: check_email is not defined onblur"

<!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的初学者,我想知道如何解决这种类型的错误?我从萤火虫那里检查它。流程是,在用户完成键入电子邮件后,它将自动从数据库中检查它是否存在。并且预期的输出不会显示在我的页面中。

您在选择器上缺少引号,在 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;
       }

添加另一个<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>
<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>

编辑

$.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);
                }
    <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。

将 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>