jQuery 插件验证的远程方法有问题

Problem with remote method of jQuery plugin Validation

我要测试插件验证,尤其是方法 "remote"。我制作了包含 HTML 文件的测试示例,代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha256-pasqAKBDmFT4eHoN2ndd6lN370kFiGUFyTiUHWhU7k8=" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.1/jquery.validate.min.js"></script>
    <script>
        $(function(){
            $('#myForm').validate({
                rules:
                {
                    name:
                    {
                        required:true,
                        remote:'nameCheck1.php'
                    },
                    email:
                    {
                        required:true,
                        email:true
                    }
                }
            }); 
        });
    </script>
</head>
<body>
    <form action="http://modx.megabulk.ru" method="post" id="myForm">
        <input type="text" name="name" placeholder="имя">
        <br><br>
        <input type="text" name="email" placeholder="e-mail">
        <br><br>
        <input type="submit">
    </form> 
</body>
</html>

和 PHP 文件,代码如下:

<?php
    $users = array ("Poul", "Anna", "Malika", "Jack", "Elena");
    $newUser = $_POST['name'];


    if (in_array($newUser, $users)) 
    {
        return false;
    }
    else
    {
        return true;
    }
?>

然后我开始测试我的表格。在浏览器控制台中,我看到以下错误:

TypeError: undefined is not an object (evaluating 'b.apply').  Exception occurred when checking element , check the 'remote' method.

我认为我的插件是旧的,并尝试使用最新版本,但我得到了同样的错误。

谁能告诉我我做错了什么?我该如何修复这个错误?

提前致谢!

您缺少脚本文件,包含此脚本应该可以解决问题。

<script src="https://cdn.jsdelivr.net/jquery.validation/1.16.0/additional-methods.min.js"></script>

我的代码出现了以下错误

  • 默认情况下,数据通过数组 GET 传递,我通过 POST
  • 获取它们
  • 用户 gaetanoM 是对的,我不应该使用 return,而是在处理程序中回显
  • 我使用了 jQuery 的精简版,它不包含 ajax 方法

通过修复所有这些错误,我得到了正确的结果。