LiveForm validace, vlastní funkce v addRule funguje až po odeslání formuláře

vb76
Člen | 16
+
0
-

Ahoj,

mám vytvořený formulář kde používám vlastní funkci pro ověření existence e-mailové adresy ve formuláři. Všechna ostatní pravidla se mi zobrazují v span bloku s třídou .help-block. Jen toto jedno pravidlo se mi validuje až po odeslání formuláře do $form->errors.

Napadá někoho čím by to mohlo být, případně jak toto vyřešit?

	protected function createStep1(): Form
	{
		$form = $this->createForm();
		$form->addText('iEmail', 'E-mail:')
		->setRequired('Položka musí být vyplněna!')
		->addRule($form::MAX_LENGTH, 'Položka musí obsahovat maximálně %d znaků!', 50)
		->addRule($form::EMAIL, 'Zadejte platnou e-mailovou adresu!')
		->addRule(function($control)
		{
			return $this->account->emailCheck($control->value);
		}, 'E-mailová adresa již v systému existuje!');
		$form->addSubmit(self::NEXT_SUBMIT_NAME, 'Pokračovat');
		return $form;
	}
stepos2
Člen | 53
+
+4
-

Každé PHP pravidlo musí mít svůj JS ekvivalent. PHP pravidla vestavěná v Nette mají svůj JS ekvivalent jako součást v LiveForm validacích. Ale vlastní PHP pravidla si musíš implementovat v JS sám.