Neodešle se formulář – žádná chyba

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Darkry
Člen | 101
+
0
-

Zdravím,

mám takový problém. Mám formulář:

Gist

který pak vykresluji:
{widget addNewsForm}

Vykreslí se správně. Chybu to nevyhodí, vše je ok, ale formulář se prostě neodešle. Můžu klikat na Přidat novinku jak chci, ale nic se neděje (stránka se ani znovu nenačte). Přitom formulář ve zdrojáku vypadá v pořádku:

<form action="/scooter/admin/web/add-news?do=addNewsForm-submit" method="post" id="frm-addNewsForm">

Nevíte, čím by to mohlo být?

smasty
Člen | 90
+
0
-

Mohlo by to súvisieť s nedávnou zmenou eventu onSubmit. Teraz je preferovaný onSuccess, onSubmit myslím trochu zmenil funkcionalitu, ale nehrabal som sa v tom…

Darkry
Člen | 101
+
0
-

Jedná se o trochu starší projekt, který běží pod version 2.0-dev 9f535f9 released on 2011-01-10, takže to asi nebude ten problém.

PS: onSuccess to ani nezná

Editoval Darkry (29. 6. 2011 20:53)

22
Člen | 1478
+
0
-

pošli definici toho formu, z tohoto nic nevyčteme

Darkry
Člen | 101
+
0
-

Definici? Veškerý kód, který se toho týká je na tom gistu.

22
Člen | 1478
+
0
-

jo, sry, podle mě by to mělo fungovat, zkus:

public function createComponentAddNewsForm($name) {
$form = new AppForm($this, $name);
...

pak se podívej ve firebugu, co se děje? Jestli třeba nemáš někde omylem navěšený javascript s return false… něco by se stát mělo určitě.

Edit, jestli se ti to posílá ajaxově, taky může být nějaká chyba v té metodě, která to zpracovává..nejlepší FireLogger na toto..

Editoval 22 (29. 6. 2011 21:13)

Darkry
Člen | 101
+
0
-

Aha. Tak chyba je v CKEDitoru.
Konkrétně tato:
Uncaught [CKEDITOR.editor] The instance "frmaddNewsForm-longText" already exists.

A poté, když chci formulář odeslat pokazí se nette control:
An invalid form control with name='longText' is not focusable.
(longText je opět políčko s CKeditorem)

CKEditor nasazení:

<script type="text/javascript" src="{$basePath}/ckeditor/ckeditor.js"></script>
<script type="text/javascript" src="{$basePath}/ckeditor/adapters/jquery.js"></script>

<script type="text/javascript">
$(function()
{
	$('.ckeditor').ckeditor();
});

</script>

EDIT2: Pokud odstraním CKEditor vše samozřejmě běží správně.

Editoval Darkry (29. 6. 2011 22:26)

Darkry
Člen | 101
+
0
-

Ovšem pořád mi to nefunguje…

22
Člen | 1478
+
0
-

se domnívám.. to ale není problém Nette v tom případě.. projdi si forum, jak se má CK editor správně připojit..

Editoval 22 (29. 6. 2011 23:21)

Darkry
Člen | 101
+
0
-

Tak jenom doplním jednu takovou zajímavost. CKEDitor má nejspíš nějaké problémy s nette js kontrolou, protože pokud políčko s CKEDitorem bude požadované tak nastává tento problém.

Díky všem.

VaKvas
Začátečník | 111
+
0
-

krome nacitani js v sablone to pripojuji pres presenter :

$form->addTextArea('content', 'Obsah:')
     ->getControlPrototype()->class("ckeditor")

a bez problemu