2010-06-15 84 views
0

嗨,我爲我的項目使用cakephp框架。在我的表單上我拿一個複選框點擊這兩個其他文本框顯示。 通過使用cakephp驗證方法我驗證表單數據,但我希望當複選框未選中,然後它避免驗證該文本框。它僅在複選框被選中時檢查。 所以plz幫助我。如何防止元素驗證

在此先感謝

回答

1

你可以用你的模型beforeValidate servicecall爲,添加額外的驗證標準,該模型。

例如:

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

您也可以在您的自定義的方法調用$this->invalidate('checkbox2')無效等領域,像checkbox2,在同一時間。

0

此外,您還可以取消設置驗證在你的控制器是這樣的:

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

感謝 但它阻止所有模型的驗證element.and我想防止選擇 – 2010-08-06 04:53:28