我在启动时填充了<select multiple>
一些值,但是通过Javascript添加了其他选项。但是我现在要验证这个元素,至少选择了其中一个选项。
我正在使用Zend_Form_Element_Multiselect来执行验证:
$tags = new Zend_Form_Element_Multiselect('cms_tags');
$tags->setRegisterInArrayValidator(false)->setRequired(true);
然而,当然,这不起作用。如何在不诉诸cms_tags
函数的情况下检查isValid
数组是否空虚这么简单?
PS。 Validate_Not_Empty也不起作用。
答案 0 :(得分:0)
幸运的是,我的问题的解决方案是我的代码。不幸的是,Zend,至少对我而言,有一个错误 - 我的数据问题是一个空值,出现在值数组的末尾,因此cms_tags[]=5
,cms_tags[]=
被认为是无效的验证者。如果这是一个有效的行为,我会留给Zend人,但这至少可以回答我的问题。
答案 1 :(得分:0)
尝试这样的事情:
public function isValid($data) {
$etat_valid = parent::isValid($data);
if(isset($data['cms_tags'])){
// Add your validators
// for example:
if("" == $data['cms_tags']){
$this->getElement('cms_tags')->addErrors(array('This value is required and can not be empty'));
$etat_valid = false;
}
}
return $etat_valid;
}