Zend Form MutliCheckbox Проверить количество отмеченных элементов

У меня есть форма Zend с элементом MutliCheckbox.

Я хотел бы проверить количество отмеченных элементов, т.е. убедиться, что проверено ровно 3 элемента.

Могу ли я сделать это с любыми текущими валидациями или мне нужно написать свои собственные?

Спасибо.


person Ran    schedule 18.09.2011    source источник


Ответы (1)


Вам придется написать свой собственный, но это довольно просто. В методе isValid () есть второй необязательный аргумент, который дает вам доступ ко всем значениям формы и позволяет таким способом проверять множественные входные данные.

class MyValidator extends Zend_Validate_Abstract {
    public function isValid($value, $formData = null){
        //you can access to all the form values in the $formData, and check/count
        //the values of your multicheckbox
        //this is the super-quick way, but you could also add error messages
        return $isValid;
    }
}

а затем добавьте его в свой элемент

$myElement->addValidator( new MyValidator());
person Frederik Eychenié    schedule 18.09.2011
comment
это не работает, потому что валидатор выполняется для каждого флажка. - person Ran; 19.09.2011
comment
извини, не хватило кофе. Сделал быстрое редактирование, которое должно вам помочь - person Frederik Eychenié; 19.09.2011
comment
Ага ! Если я хорошо помню, он определен в интерфейсе валидатора. - person Frederik Eychenié; 20.09.2011