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
+
0
-

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)

Jan Tvrdík
Nette guru | 2595
+
+3
-

Proč tam máš ten html tag <form>?

Baski
Člen | 12
+
0
-

Ďakujem, fakt som si tam ten jeden element form naviac nevšimol :/