Zend framework zend表单在一个元素上调度一个验证器
可能吗 我已经编写了一个简单的验证器,它在表单提交时被触发。 我可以使用相同的验证器,但它必须在输入字段离开后立即触发 可能吗?Zend framework zend表单在一个元素上调度一个验证器,zend-framework,zend-form,zend-validate,Zend Framework,Zend Form,Zend Validate,可能吗 我已经编写了一个简单的验证器,它在表单提交时被触发。 我可以使用相同的验证器,但它必须在输入字段离开后立即触发 可能吗? 巴勃罗这是可能的,这里有一种方法 向表单元素添加Javascriptonblur事件 onblur调用将包含该字段及其值的ajax请求发送给ZF操作 该操作调用该元素上的验证器,或使用Zend_Form::isValidPartial检查填充的元素 返回指示有效/无效和可选错误消息的JSON响应 在ajax完成时,阅读JSON响应并更新HTML以反映验证结果 希望
巴勃罗这是可能的,这里有一种方法
- 向表单元素添加Javascript
事件onblur
- onblur调用将包含该字段及其值的ajax请求发送给ZF操作
- 该操作调用该元素上的验证器,或使用
检查填充的元素Zend_Form::isValidPartial
- 返回指示有效/无效和可选错误消息的JSON响应
- 在ajax完成时,阅读JSON响应并更新HTML以反映验证结果
希望有帮助。这是工作示例的一部分: 后端:
class UserController extends Zend_Controller_Action
{
/* ... */
public function validateAction()
{
if ($this->_request->isXmlHttpRequest()) {
$values = $this->_request->getParam('values');
$form = new Form_User();
$isValid = true;
if (!$form->isValidPartial($values)) {
$isValid = $form->getMessages();
}
$this->_helper->json(array('errors' => $isValid));
}
}
/* ... */
}
前端(仅ajax调用部分)应连接到事件:
$.ajax({
type: "POST",
url: "/user/validate/",
data: {
'values': $('#my-form-id').serialize()
},
dataType: "json",
beforeSend:function(){
},
success: function(response){
var result = response.errors;
if (result == true) {
// given fields are valid
// do some extra stuff here
} else {
// invalid
// do some extra stuff here
}
}
}
});
看起来不错,我会去的。酷:)一路上都很棒!在这里也得到了帮助,