Nette:Forms a JS validacia
- David Grudl
- Nette Core | 8218
Pomocí
$form->renderer->clientScript = NULL;
// tj. $form->getRenderer()->setClientScript(NULL);
ale koukám, že to nefunguje – opravím.
- edke
- Člen | 198
V poslednej verzii cez konstrukciu
$form->renderer->clientScript = NULL;
to uz funguje, co je super a vdaka :-)
Ale po hrani s Nette:Forms dalej som prisiel do situacie, kde pouzivam JS v suvislosti toggle() ale clientScript samozrejme JS vypne uplne. Je teda mozne nejako odlisit tieto dve situacie ? Bolo by super, keby Nette:Forms generovali JS pre toggle v pripade ze je vo Forms pouzite, ale vedeli vypnut JS validaciu formulara.
- David Grudl
- Nette Core | 8218
Validační a „překlapovací“ skripty jsou dostupné v
$form->renderer->clientScript->validateScript
a
$form->renderer->clientScript->toggleScript
, takže asi by
pomohlo:
$form->render('xxx'); // vynutí inicializaci
$form->renderer->clientScript->validateScript = NULL;
Ale spadá to do oblasti, která nejspíš projde dalším vývojem, tak nezaručuju, že to bude pořád platit.
- edke
- Člen | 198
V akualnej verzii (106) aj napriek
$form->render('xxx'); // vynutí inicializaci
$form->renderer->clientScript->validateScript = NULL;
vygeneruje pre submit button onclik, ktory vola validateForm()
<tr>
<td class="label"> </td>
<td class="control"><input type="submit" onclick="return validateForm(this);" class="button" name="apply" id="frmform2-apply" value="Pridať" /> <input type="submit" class="button" name="cancel" id="frmform2-cancel" value="Cancel" /></td>
</tr>
</table>
</div>
<div><input type="hidden" name="_token_" value="117c12270a1e7afc366fd14740c416e3" /></div>
</form>
Javascript ale spravne nie je vygenerovany. Len pri submite je samozrejme volana neexistujuca JS funkcia.
- David Grudl
- Nette Core | 8218
Tohle není oblast, která by byla zcela dokončená, systémové řešení
nemám… co třeba
zkusit $form->renderer->clientScript->validateScript = ' ';
- edke
- Člen | 198
David Grudl wrote:
Tohle není oblast, která by byla zcela dokončená, systémové řešení nemám… co třeba zkusit
$form->renderer->clientScript->validateScript = ' ';
Teraz vygeneroval javascript funkciu na validaciu takto:
function validateForm2(sender) {
var el, res;
return true;
}
Zatial to teda takto moze ostat :-)