我是 Zend 2 的新手。我创建了一个注册表单并使用 jQuery 表单验证插件来验证它。现在我想检查电子邮件是否已经存在(使用 zend 2 和 jQuery 表单插件)。谁能帮我实现这个。
问问题
611 次
2 回答
0
我不知道 jQUery.FormValidation,但我知道我将如何继续这种功能。这与ZF1中的基本相同。
我会编写一个自定义操作,partialValidationAction()
给定一个参数element
。现在到那个动作你POST
的表格。然后在动作内部,因为它被赋予了 parameter element
,所以您将validationGroup
表单的 设置为仅这一个元素,然后您将验证表单。
如果元素已验证,则该操作将简单地返回true
,如果验证返回 false,则包含错误消息的 JSON 对象。因此,每当您收到带有错误消息的 JSON-Object 时,将它们添加到您的表单元素中,您就完成了。
我会这样做有几个原因,一个是可维护性。IIRC 来自 jQuery 的 formValidation 需要在 JS-Code 中设置规则,对吗?这意味着您必须在两个不同的地方维护您的验证规则,这通常是一件坏事,而且几乎总是会导致规则不匹配。
于 2013-09-26T07:20:42.060 回答
0
$('.register-form').validate({ 规则:{
email: {
required: true,
email: true,
remote: {
url: baseUrl+'/login/emailcheck',
type: 'POST',
data: {
mail: function(){ return $("#email").val(); }
},
}
},
},
messages: { // custom messages
email: {
required: "Email is required.",
remote: 'Email already Exists.'
},
},
});
在登录控制器中,
公共函数 emailcheckAction(){
$email = $_POST['mail'];
$result = $this->getRegistrationInfoTable()->getEmail($email);
if($result){
$value = false; //'Email already exists';
}else{
$value = true;
}
$result = new JsonModel(array(
'response' => $value
));
return $result;
}
我还编辑了 jquery.validate.js 以响应 json 数组。现在它工作正常:)
于 2013-09-27T09:01:08.770 回答