Nefunguje vlastní js validace

David Macek
Člen | 3
+
0
-

Pěkný den,

vytvářel jsem vlastní js validaci pro vkládání zboží do košíku, kde je třeba, aby se zboží dalo vkládat jen po určitých násobcích. Validace na straně serveru funguje bez problému, ale javascriptu se nějak nechce.

function divisibilityValidator($amount, $value)
{
	return $amount->value % $value === 0;
}

protected function createComponentAddBasketForm()
{
$form = new Form;
//...
$form->addText('amount','ks')
	->addRule(FORM::FILLED,'Zadejte množství')
	->addRule([$this,'divisibilityValidator'],'Množství musí být násobkem čísla %d',2);
//...
}

Všiml jsem si, ale že v HTML to do data atributu pro validaci nedává nic ohledně toho divisibility validatoru – výsledek tam vypadá takto:

<input type="number" value="1" min="1" id="pocet-kusu" name="amount" required=""
data-nette-rules="[{"op":":filled","msg":"Zadejte množství"}]">

Verze Nette Forms je nejnovější 2.3.*

Kdepak bych mohl dělat chybu?

David Grudl
founder | 8310
+
+1
-

Je potřeba, aby ten validátor byl statická metoda, tj. třeba addRule('MyClass::divisibilityValidator', ….

David Macek
Člen | 3
+
0
-

Výborně, funguje to, díky!

RSS tématu Téma zavřeno