2009-10-15 75 views
1

我有一個Zend表單,只有當用戶選擇特定的複選框時纔會顯示子表單。 如果選中該複選框,則子窗體中的某些字段是必需的,否則,該子窗體中的字段應該被IsValid忽略。驗證Zend表單時排除元素

這是怎麼回事?

+0

您可以在從屬元素上使用自定義驗證器。整個數據集以$ context的形式傳遞給每個驗證器,如果必須基於其他值進行驗證,則可以使用該數據集。 – 2009-10-15 16:55:02

回答

3

你有沒有嘗試過在設置元素之前不需要驗證?類似...

$form = new My_Form(); 

if (isset($_POST['ignore_checkbox']) && $_POST['ignore_checkbox'] == 1) 
{ 
    $form->getElement('ignored_element_name')->setRequired(false); 

} 

if ($form->isValid($_POST)) { 
... 
+1

我知道這是一個選項。不過,我希望有一個更優雅的方式。 – sander 2009-10-15 13:43:36