我在我的表单中使用jQuery validate插件。 验证工作正常,除非我使用此“数据”函数发送数据。 当我注释掉数据部分时,表单会被提交并正确重定向,并且其他验证会正确实施。 但是使用数据,表单会被提交并重定向到空白页。
此处检查检查数据库中重复电子邮件的验证。使用以下数据功能,验证工作正常,但提交无效。
这是验证脚本的一部分:
personal_email: {
email: true,
remote: {
param:{
url: app.baseurl('user/check_personal_email'),
type: 'POST',
data:
{
userID : function()
{
return $("#userID").val();
}
}
}
// ,
// depends: function(element)
// {
// return ($('#editTrue').val() == undefined && $('#editTrue').val() == null);
// }
}
},
处理并返回上述 url 请求的控制器功能是:
public function checkPersonalEmailExists($f3)
{
$userID = $f3->get('POST.userID');
$email = $f3->get('POST.personal_email');
$user = new UserModel();
$records = $user->checkIfPersonalEmailExists($email);
if(count($records) > 0)
{
foreach ($records as $record)
{
$user_id = $record['id'];
}
echo ($userID == $user_id) ? 'true' : 'false';
}
else
{
echo 'true';
}
}
这是我的HTML表单:
<form method="post" action="user/save" id="employee-form">
<input name="personal_email" type="email" class="form-control" id="personal_email">
<button type="submit" class="btn btn-primary" name="update" value="update">Update User</button>
</form>
表单提交由以下功能处理:
public function save($f3)
{
$save = $f3->get('POST.save');
$update = $f3->get('POST.update');
if(isset($save) || isset($update))
{
echo 'It is working';
// saving to database stuff...
exit;
}
else
{
echo 'It is not working';
exit;
}
}
我注意到的一件事是,当每个元素都填充有效数据时,那么只有它以这种方式运行。否则,它显示“它正在工作”。
似乎验证中的数据,提交按钮值无法识别..显示“它无法正常工作”。
我无法弄清楚出了什么问题,以及jQuery验证插件的行为方式。
请帮我解决这个问题。很感谢任何形式的帮助。感谢。