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



我要测试插件验证,尤其是方法"远程"。我制作了由具有以下代码的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 是对的,我应该在处理程序中使用不返回而是回显
  • 我使用了不包含ajax方法的jQuery的精简版本

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

最新更新