CKEditor – textarea je prazdny (?)
- wdolek
- Člen | 331
pri pouziti CKEditoru na TextArea, a pri zadani pravidla Form::FILLED mi pri prvnim pokusu odeslani formulare vyhodi nette chybu, ze text musim vyplnit. kdyz zmacknu tlacitko znovu, formular se odesle.
nema nekdo poneti, proc to?… kdyz CKEditor nepouziji, tak formular jde odeslat hned na poprve.
CKEditor pouzivam stylem CKEDITOR.replace(‚jmenoTextArea‘);
- ji_ri_k
- Člen | 44
Mohlo by to být tím, že ten CKeditor je tam přidán až „live“. Po prvním odeslání se ti teprve uloží z té live instance CKeditoru data do textarea (formulář máš nastaven tak, aby si pamatoval). Při druhém odeslání ti to uloží ty data z toho prvního odeslání, nikoliv změněná data. Tu chybu ti vyhodí JavaScript, nebo přímo už Nette?
// Doplnění: ten CKeditor ti <textarea> nahradí „live“ → tzn. na JS budeš potřebovat jQuery.live
Editoval ji_ri_k (22. 10. 2009 14:36)
- Aurielle
- Člen | 1281
<form action="" onsubmit="nejaka_fce();">
není totéž co
$form->onSubmit[] = array($this, 'nejakaFce');
Nevím, jak přesně funguje CKEditor, ale řešil bych to tak, že bych na JS onsubmit funkci navázal vyplnění textarey (funkce by se provedla ještě před validací, v onsubmit může být funkcí víc) a až pak nechal Nette validovat.
edit: U nějakých formů ti to funguje proto, že CKEditor v určitých intervalech aktualizuje obsah textarey. Tedy je v momentě validování již vyplněná. Koukni se přes firebug na ten iframe ckeditoru, tam je ta funkce co potřebuješ.
Editoval gmvasek (23. 10. 2009 22:16)
- wdolek
- Člen | 331
gmvasek: ano, vim, ze:
$form->onSubmit[] = array($this, 'userEditFormSubmitted');
neni to same jako onsubmit
v elemenu
<form>
a prave proto by me zajimalo, jestli jde nejak onsubmit
doplnit
o vlastni funkce…
$html = $form->getElementPrototype();
$html->onsubmit = "naplnTextAreaHodnotouZCKEditoru();";
pricemz v HTML by v onsubmit
stalo:
onsubmit="naplnTextAreaHodnotouZCKEditoru(); return validateCustomTextEditForm(this)"
… kdyz provedu vyse zminene, tak tim zabiju puvodni Netti
onsubmit
:(((