/** * * @param array $data * @return boolean */ public function isValid($data) { $form = $this; if ($subform = $this->getSubForms()) { $form = current($subform); } if (isset($data['country_id']) && ($zone = $form->getElement('zone_id'))) { if (!empty($this->_zones[$data['country_id']])) { $zone->setAttribs(array('options' => $this->_zones[$data['country_id']])); $form->getElement('state')->setRequired(false); } else { $zone->setRegisterInArrayValidator(false); $zone->setRequired(false); } } return parent::isValid($data); }