I am using Zend Form to create dynamic form.
I have Zend Form validation too.
Trying to remove Validation dynamically, but not getting any success.
C
Your code is removing a validator by name
$value->removeValidator('ele_4af42ceac7810');
This is typically something like NotEmpty
or Regex
as opposed to the element name.
Maybe you want
$value->clearValidators();
Also, +1 Ismael - you should remove it prior to calling $form->isValid()
You should remove the validator BEFORE calling $form->isValid().
The solution I came up with was overriding the isValid
method on my form class and removing the validator on the password field if it was left blank:
public function isValid($data)
{
if (empty($data['password'])) {
$this->form
->getElement('password')
->clearValidators();
$this->form
->getElement('password_confirm')
->clearValidators();
}
return $this->form->isValid($data);
}
The $this->form
is referred to the form being extended by composition, the solution works when extending a Zend Form descendent class as well.
Just a side note, this solution won't work if the password field is required