Nefunguje formulár vo Firefoxe, ide v Safari
- Yoda
- Člen | 1
Ahojte,
používam Nette „version 2.0-dev released on 2011–07–13“ a PHP 5.3.
Nefunguje mi odosielanie formuláru vo Firefoxe, funguje OK v Safari.
Vo Firefoxe keď dám správne vyplnený formulár odoslať, tak mi zobrazí „Please fill out this field“, pričom správa je mimo okna browseru, viď. obrázok http://q7.sk/nette/tmp.jpg
Vie niekto pomôcť? Ďakujem.
- nanuqcz
- Člen | 822
Ahoj, tipuju to na tento problém: Máš vyplněný text v CKEditoru, ale ne v původním textarea. A protože tuto textareu máš nastavenu jako povinnou, javascript ti vyhodí tuhle hlášku.
Řešení: Zavolat před každým odesláním takového formuláře skript
for ( instance in CKEDITOR.instances )
CKEDITOR.instances[instance].updateElement();
Editoval nanuqcz (26. 3. 2012 15:42)
- duke
- Člen | 650
Konkrétně tak, že v továrničce, kde vytváříš formulář budeš mít:
$form->getElementPrototype()->onSubmit("for (instance in CKEDITOR.instances) CKEDITOR.instances[instance].updateElement(); return true");
Navázat to na form pomocí unobtrusive javascriptu je problematické (pokud někdo ví jak, nechť poradí), neboť potřebuješ tento kód volat ještě před validací v netteForms.js, která si tento event už také zaregistrovala. Použití inline javascriptu v onsubmit je jediné, co mi fungovalo.
- Vojtěch Dobeš
- Gold Partner | 1316
Nešlo by to zunobtrusivnit tak, že by se tento unobstrusive skript
nalinkoval dřív než netteForms.js
? Možná je to nesmysl, ale
mělo by to zajistit dřívější registraci callbacku úplně stejné.
- duke
- Člen | 650
Specifikace W3C modelu pokud vím nezaručuje, že handlery budou volány
v pořadí, v jakém byly registrovány. Nicméně se zdá, že
v aktuálních prohlížečích tomu tak je.
Zaručené by to bylo v případě, že by se handlery registrovali jednotně
např. přes jquery (tj. jak pro netteForms tak pro ckeditor).