Javascriptová validace formuláře nefunguje

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

Přeji pěkný den,

dnes jsem zjistil, že mi v projektu nefunguje validování formulářů přes Javascript. Hledal jsem v k=odech i tady na webu, ale nenašel jsem, čím by to mohlo být. Ani v HTML není nic vygenerováno. Vyvýjím to na Nette 2.0 alpha 2 s PHP 5.2.14. Nenapadá někoho, kde bych mohl něco něchtě upravit, že se to takhle rozhodilo?

Předem díky

newPOPE
Člen | 648
+
0
-

V HTML by mali byt HTML5 atributy a potom uz len staci includnut netteForms.js a vsetko by malo ficat.

stekycz
Člen | 152
+
0
-

newPOPE napsal(a):

V HTML by mali byt HTML5 atributy a potom uz len staci includnut netteForms.js a vsetko by malo ficat.

Nepoužívám žádnou svojí nadstavbu pro renderování ani pro formulář, stačí mi (alespoň prozatím) základ. Jaký HTML5 atributy máš na mysli? netteForms.js jsem si už přidal, nějak jsem asi nezachytil, že je třeba vkládat extra soubor.

newPOPE
Člen | 648
+
0
-

Mal som na mysli toto

Ani v HTML není nic vygenerováno.

Nette po novom pouziva HTML atributy na definovanie pravidiel pre policka…

A stale ti to nefunguje?

stekycz
Člen | 152
+
0
-

newPOPE napsal(a):

Mal som na mysli toto

Ani v HTML není nic vygenerováno.

Nette po novom pouziva HTML atributy na definovanie pravidiel pre policka…

A stale ti to nefunguje?

Jo takhle. No jako jo, vygenerovaný to v HTML je správně pravděpodobně, atributy pro JS tam jsou, ale z nějakého důvodu to stále neprobíhá :(

Jakub Lédl
Člen | 55
+
0
-

A jQuery do stránky vkládáš (https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js)?

Editoval Jakub Lédl (18. 1. 2011 22:42)

stekycz
Člen | 152
+
0
-

Jakub Lédl napsal(a):

A jQuery do stránky vkládáš (https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js)?

Ne, mám staženou verzi 1.4.2, ale nevím, že by s tím měl být nějaký probém…Ale zkusím změnit.

Každopádně pro doplnění sem ještě dám příklad kódu, který nejede. Mám tam pravděpodobně asi i chybu na kontrolu velikosti nahrávaného souboru a na kontrolu jeho mime-typu, ale i bez toho to nejede.

$form = new Form;
$form->setAction('');
$form->setMethod(Form::POST);
$form->getElementPrototype()->id = 'photogallery-form';

$form->addText('GalleryTitle', 'Název galerie:', 60)
	->addRule(Form::FILLED, 'Zadejte prosím název galerie.')
	->addRule(Form::MAX_LENGTH, 'Název galerie musí mít maximálně %d znaků.', 60);

$form->addText('GalleryDescription', 'Popis galerie:', 200)
	->addCondition(Form::FILLED)
	->addRule(Form::MAX_LENGTH, 'Popis galerie musí mít maximálně %d znaků.', 200);

$form->addDatePicker('EventDate', 'Datum:', 10)
	->addRule(Form::FILLED, 'Zadejte prosím datum.');

$form->addFile('TitlePhoto', 'Titulní fotografie:')
	->addRule(Form::FILLED, 'Vyberte prosím titulní fotografii galerie.')
	->addRule(Form::MIME_TYPE, 'Titulní fotografie musí být obrázek JPG.', 'jpg')
	->addRule(Form::MAX_FILE_SIZE, 'Titulní fotografie je příliš velká.', '1M');

$form->addFile('Archive', 'ZIP s fotografiemi:')
	->addRule(Form::FILLED, 'Vyberte prosím archiv s fotografiemi.')
	->addRule(Form::MIME_TYPE, 'Archiv s fotografiemi musí být ve formátu ZIP.', 'zip')
	->addRule(Form::MAX_FILE_SIZE, 'Archiv s fotografiemi je příliš velký.', '8M');

$form->addSubmit('send', 'Uložit')
	->setHtmlId('sender');
$form->addHidden('GalleryID');

Editoval Gruw (18. 1. 2011 22:54)

stekycz
Člen | 152
+
0
-

Tak už úplně opraveno. Nakonec jsem zjistil, že z nějakých důvodů nepoužívám stejnou komponentu v modulu Front a v modulu Admin a tedy jsem si díky Webloaderu přidal ten JS jen ve Frontu. Každopádně už to funguje. Díky!

redhead
Člen | 1313
+
0
-

@Jakub Lédl: jQuery není k fungování netteForms.js potřeba.

Aurielle
Člen | 1281
+
0
-

@Gruw: použij AppForm a továrničky, používat jen Form v Nette aplikaci je špatně…

stekycz
Člen | 152
+
0
-

gmvasek napsal(a):

@Gruw: použij AppForm a továrničky, používat jen Form v Nette aplikaci je špatně…

Je mi to jasný, už jsem na to trochu okem házel, ale nejprve musím víc prostudovat. Tenhle projekt jsem začínal ještě s Nette 0.9.0 nebo tak něco a přecházel postupně na 0.9.2 a 0.9.5 a teď 2.0. A mám takový pocit, že je tam až v rámci nejnovějších úprav od 0.9.x … Ale ruku do ohně za to nedám, určitě jsou tady tací, minimálně David, kteří znají téměř přesné datum :) Zasekl jsem se nejspíš u tvorby formulářů v rámci best practice pro 0.8.7 :/