如何防止元素验证

时间:2010-06-15 05:32:59

标签: cakephp cakephp-1.3

嗨,我正在为我的项目使用cakephp框架。在我的表单上,我点击这个另外两个文本框的复选框显示。 通过使用cakephp验证方法我验证表单数据,但我希望当没有选中复选框时,它避免验证该文本框。它仅在选中复选框时进行检查。 所以PLZ帮助我。

提前致谢

3 个答案:

答案 0 :(得分:1)

您可以在验证服务之前使用您的模型,并为此模型添加额外的验证标准。

例如:

function beforeValidate($options = array())
{
    if(!empty($this->data['Model']['fieldOne']))
        $this->validate['fieldTwo'] = array(/*normal validation rules*/);
    return true; // Needed or validation fails
}

答案 1 :(得分:0)

您可以使用custom validation methods

var $validate = array(
    'checkbox1' => 'checkboxRule'
);

// If checkbox1 is checked, requires checkbox2 to be checked as well
function checkboxRule() {
    if (!empty($this->data[$this->alias]['checkbox1'])) {
        return !empty($this->data[$this->alias]['checkbox2']);
    }
    return true;
}

您还可以通过在自定义方法中调用checkbox2来同时使$this->invalidate('checkbox2')等其他字段无效。

答案 2 :(得分:0)

此外,您可以在控制器中取消设置验证,如下所示:

unset($this->Model->validate);