Ako vypísať error pri submite formulára do HTML
- Čamo
- Člen | 798
Zdravím,
no študujem akurát formuláre a skúšam čo dokážu.
No a chcel by som, aby pri submite vypísal javascript errory do nejakého divu
alebo rovno nad daný prvok do nejakého spanu a malo by to byť
v slovenčine.
Mne to momentálne alertuje mesiďž, ktorý je v premennej data-nette-rules.
Našiel som aj metódu v súbore netteForms.js, ktorá to zrejme obsluhuje:
Nette.addError = function(elem, message) {
if (elem.focus) {
elem.focus();
}
if (message) {
alert(message);
}
};
Tak ako dosiahnem to, čo som popísal – do html a v SK jazzyku.
Vopred ďakujem.
EDIT:
Zaujímavé je, že keď zruším odkaz na netteForms.js, tak to vykreslí
veľmi elegantnú popisku pri chybne vyplnených poliach, v češtine a
s červeným rámikom. To teda nechápem a zatiaľ som ani neprišiel na to kde
sa to berie.
Editoval Čamo (24. 4. 2014 23:22)
- Čamo
- Člen | 798
EDIT:
Tak ako sa to teda v Nette rieši?
Zatiaľ som sa dočítal, že sa prepisuje tá metóda addError tiež, že tie
elegantné popisky sú natívne fičúry prehliadača a ešte tuším že súbor
netteForms.js je zastaralý a niečo o prepise do jQuery či čo… Ja som
stále v tom, že sa to rieši nejako elegantne. Aha tiež som objavil, ten
druhý parameter metódy setRequired.
Editoval Čamo (25. 4. 2014 12:23)
- Čamo
- Člen | 798
Tak existuje nejaká Nette js validácia, či nie? Ono mi to už vykreslí to čo chcem, ale čo je najhoršie vždy zvaliduje len jeden prvok. Ja by som čakal, že prejde všetky naraz. Snažím sa lúštiť ten kód, ale ani komentáre to nemá a ako začiatočníka ma to privádza do šialenstva… Zišla by sa dokumetácia ku tomu.
- duke
- Člen | 650
Čamo napsal:
Zdravím,
no študujem akurát formuláre a skúšam čo dokážu.
No a chcel by som, aby pri submite vypísal javascript errory do nejakého divu alebo rovno nad daný prvok do nejakého spanu a malo by to byť v slovenčine.
Mne to momentálne alertuje mesiďž, ktorý je v premennej data-nette-rules. Našiel som aj metódu v súbore netteForms.js, ktorá to zrejme obsluhuje:Nette.addError = function(elem, message) { if (elem.focus) { elem.focus(); } if (message) { alert(message); } };
Tak ako dosiahnem to, čo som popísal – do html a v SK jazzyku.
Vopred ďakujem.
Pokud ti nevyhovuje výchozí implementace klientské validace v netteForms.js (tj. s alertem), budeš si asi muset napsat svou a nebo ji prostě nepoužívat a spokojit se s validací na straně serveru.
EDIT:
Zaujímavé je, že keď zruším odkaz na netteForms.js, tak to vykreslí veľmi elegantnú popisku pri chybne vyplnených poliach, v češtine a s červeným rámikom. To teda nechápem a zatiaľ som ani neprišiel na to kde sa to berie.
Děje se tak, protože Nette vždy provádí validaci na straně serveru. Tím, žes odstranil skript netteForms.js, jsi jen vypnul validaci na straně klienta. Tzn., že se chybně vyplněný formulář odešle na server a až tam se zachytí ty chyby, které se pak zmíněným způsobem znázorní (to se už ale neděje prostřednictvím js, ale php).
Všechny validační hlášky můžeš specifikovat už v php. Javascript si je pak může převzít z data atributů.
- Čamo
- Člen | 798
Tie popisky, nie sú z php. Už som to napísal. Aj tu metódu addError som si upravil. To pre mňa nieje problém. Problém je v tom, že sa všade píše ako to Nette všetko urobí za vás a ono to neurobí! Aká je okolo Nette živá komunita, ktorá vám pomôže vyriešiť problém a ja čakám dva dni než sa dozviem, že Nette tu js validáciu proste nemá. Teraz neviem, čo mám čakať od ostatných častí frameworku.
Editoval Čamo (26. 4. 2014 19:32)