1
我有一個Zend表單,只有當用戶選擇特定的複選框時纔會顯示子表單。 如果選中該複選框,則子窗體中的某些字段是必需的,否則,該子窗體中的字段應該被IsValid忽略。驗證Zend表單時排除元素
這是怎麼回事?
我有一個Zend表單,只有當用戶選擇特定的複選框時纔會顯示子表單。 如果選中該複選框,則子窗體中的某些字段是必需的,否則,該子窗體中的字段應該被IsValid忽略。驗證Zend表單時排除元素
這是怎麼回事?
你有沒有嘗試過在設置元素之前不需要驗證?類似...
$form = new My_Form();
if (isset($_POST['ignore_checkbox']) && $_POST['ignore_checkbox'] == 1)
{
$form->getElement('ignored_element_name')->setRequired(false);
}
if ($form->isValid($_POST)) {
...
我知道這是一個選項。不過,我希望有一個更優雅的方式。 – sander 2009-10-15 13:43:36
您可以在從屬元素上使用自定義驗證器。整個數據集以$ context的形式傳遞給每個驗證器,如果必須基於其他值進行驗證,則可以使用該數據集。 – 2009-10-15 16:55:02