/** * Adds element's client-side validation rules to a builder object * * This will also call forceValidator() if the repeat does not contain * any (visible) items but some of the child elements define client-side rules * * @param HTML_QuickForm2_JavascriptBuilder $builder */ protected function renderClientRules(HTML_QuickForm2_JavascriptBuilder $builder) { if ($this->toggleFrozen()) { return; } if (!$this->getIndexes()) { $fakeBuilder = new HTML_QuickForm2_JavascriptBuilder(); /* @var $child HTML_QuickForm2_Node */ foreach ($this->getRecursiveIterator() as $child) { $child->renderClientRules($fakeBuilder); } if ($fakeBuilder->getValidator()) { $builder->forceValidator(); } } parent::renderClientRules($builder); }