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 方法
通过修复所有这些错误,我得到了正确的结果。
我要测试插件验证,尤其是方法 "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 方法
通过修复所有这些错误,我得到了正确的结果。