Javascriptová validace formuláře nefunguje
- stekycz
- Člen | 152
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
- stekycz
- Člen | 152
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.
- stekycz
- Člen | 152
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
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
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
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 :/