Zlé vykreslovanie formuláre s novalidate
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Baski
- Člen | 12
Mám stránku, na ktorej sú 2 formuláre pre registráciu. Prvý formulár
funguje v pohode aj všetky id a podobné veci sú tiež v poriadku. Problém
nastáva pri druhom formulári.
Formulár vykreslí ako:
<form novalidate>
....
</form>
Chýbajú tam atribúty action method a id, čo spôsobuje že sa nestane
žiadna akcia a zavolá sa len GET na tú istú stránku s aktuálnimi
parametrami daného formulára.
Komponenta vyzerá nasledujúco
<?php
protected function createComponentRegisterPartnerForm() {
$form = new Nette\Application\UI\Form();
$form->getElementPrototype()->id('partner-form');
$form->addText('name')
->setAttribute('placeholder', 'názov pizzerie')
->addRule(Nette\Application\UI\Form::FILLED, 'Musí to byť vyplnené.');
$form->addText('mail')
->setAttribute('placeholder', 'e-mail')
->addRule(Nette\Application\UI\Form::FILLED, 'Musí to byť vyplnené.');
$form->addPassword('pw1')
->setAttribute('placeholder', 'Zadajte heslo')
->setOption('description', 'Najmenej 6 znakov.')
->addRule(Nette\Application\UI\Form::FILLED, 'Vyplnte svoje heslo')
->addRule(Nette\Application\UI\Form::MIN_LENGTH, 'Heslo musí mať najmenej 6 znakov', 6, 6);
$form->addPassword('pw2', 'Heslo znovu: ', 20)
->setAttribute('placeholder', 'Zopakujte heslo')
->addConditionOn($form['pw1'], Nette\Application\UI\Form::VALID)
->addRule(Nette\Application\UI\Form::FILLED, 'Vyplnte znovu heslo')
->addRule(Nette\Application\UI\Form::EQUAL, 'Heslá sa nezhodujú.', $form['pw1']);
$form->addText('ico')
->setAttribute('placeholder', 'ičo')
->addRule(Nette\Application\UI\Form::FILLED, 'Musí to byť vyplnené.');
$form->addText('dic')
->setAttribute('placeholder', 'dič')
->addRule(Nette\Application\UI\Form::FILLED, 'Musí to byť vyplnené.');
$form->addText('ulica')
->setAttribute('placeholder', 'Ulica')
->addRule(Nette\Application\UI\Form::FILLED, 'Musí to byť vyplnené.');
$form->addText('mesto')
->setAttribute('placeholder', 'Mesto')
->setAttribute('id','mesto')
->addRule(Nette\Application\UI\Form::FILLED, 'Musí to byť vyplnené.');
$form->addText('psc')
->setAttribute('placeholder', 'PSC')
->setAttribute('id','psc')
->addRule(Nette\Application\UI\Form::FILLED, 'Musí to byť vyplnené.');
$form->addSubmit('odeslat', 'Vytvoriť konto');
$form->onSuccess[] = $this->registerPartnerSucceeded;
return $form;
}
?>
a lattečko vyzerá nasledújúco.
<div class="register">
<div class="cms5-grid-col2">
<h1>Registracia</h1>
<p>Whether you need simple pages, striking galleries, a professional blog, or an online store, it's all included with your Squarespace website. Best of all, </p>
{form registrationForm}
{input mail}
{input password}
{input password2}
{input send}
{/form}
</div>
<div class="cms5-grid-col2-2">
<form>
<label>Som firma a chcem u Vas zarabat</label>
{form registerPartnerForm}
{input name}
{input mail}
{input pw1}
{input pw2}
{input ico}
{input dic}
{input ulica}
{input mesto}
{input psc}
{input odeslat}
{/form}
</form>
</div>
</div>
Živý náhľad je tu http://drages.eu/register/.
Editoval Baski (24. 3. 2015 2:02)