InstantClientScript a pravidlo :valid
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- pmg
- Člen | 372
Ve třídě InstantClientScript
se při generování skriptu pro
operaci :valid
zacyklí funkce getClientScript
a
getValidateScript
.
case $operation === ':valid' && $control instanceof FormControl:
return $tmp . $tmp2 . "res = function(){\n\t" . $this->getValidateScript($control->getRules(), TRUE) . "return true; }();";
Na řádku 308 (ten druhý) by to nejspíš chtělo vyndat z pole pravidlo
:valid
.
Rekonstrukce
Tento kód dát někam do presenteru. Jen bych nečekal, že to shodí Apache.
$form = new /*Nette\Forms\*/AppForm($this, 'test');
$form->addText("test", "Test")
->addRule(Form::VALID);
// $form->renderer->clientScript = NULL;
$form->render();
Obdobně se smyčka vytvoří při validaci ve funkci
FormControl::validateValid
.
public static function validateValid(IFormControl $control)
{
return $control->rules->validate(TRUE);
}
(Potřebuji to kvůli připravované třídě Captcha
, která
toto pravidlo přetěžuje.)
Díky.