Nefunguje vlastní js validace
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- David Macek
- Člen | 3
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
- Nette Core | 8228
Je potřeba, aby ten validátor byl statická metoda, tj. třeba
addRule('MyClass::divisibilityValidator', …
.