Nelze odeslat formulář, ani se neprovádí validace

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

Zdravím.

Mám takový kuriózní problém. Mám presenter, kde mám vytvořený formulář pro přihlášení, ten funguje normálně.

Pak mám druhý presenter s formulářem pro registraci a kdykoli kliknu na submit button tak se nic neděje, ani se neprovede validace, pokud ve formuláři něco chybí vyplněno. Opravdu mi to nejde do hlavy.

public function createComponentRegistrationForm()
	{
		$form = new Form();
		$form->onSuccess[] = callback($this, "registrationFormSubmit");

		$form->addText("name", "First name")->addRule(Form::MAX_LENGTH, null, 30)->setRequired();
		$form->addText("email", "Email address")->addRule(Form::EMAIL)->addRule(Form::MAX_LENGTH, null, 50)->setRequired();
		$form->addRadioList("sex", "Sex", array("male" => "Male", "female" => "Female"))->setRequired();

		$days = array();
		for ($i = 1; $i <= 31; $i++)
		{
			$days[$i] = $i;
		}
		$form->addSelect("day", "Day", $days)->setRequired();

		$form->addSelect("month", "Month",
				array(
			1 => "January", 2 => "February", 3 => "March", 4 => "April", 5 => "May", 6 => "June", 7 => "July",
			8 => "August", 9 => "September", 10 => "October", 11 => "November", 12 => "December"
		))->setRequired();

		$years = array();
		for ($i = (int) date("Y") - 15; $i > (int) date("Y") - 100; $i--)
		{
			$years[$i] = $i;
		}
		$form->addSelect("year", "Year", $years)->setRequired();

		$form->addCheckbox("wants_male", "Men");
		$form->addCheckbox("wants_female", "Women");

		$form->addPassword("password", "Password")->addRule(Form::MIN_LENGTH, "Password must have at least 5 characters.", 5)
				->setRequired();
		$form->addPassword("password_again", "Password (again)")->addRule(Form::EQUAL, "Passwords must be equal!",
						$form["password"])
				->setRequired();

		$form->addSubmit("submit", "Register");

		return $form;
	}

V Nette už nějakou chvíli dělám, formulářů jsem za tu dobu už vytvořil x desítek, ale s tímhle jsem se setkal poprvé teda. V layoutu není vložen žádný js soubor. Presenter i s templatem se nachází ve složce FrontModule, ale to myslím nehraje roli, protože už jsem měl aplikaci rozdělenou na moduly a všude fungovalo vše.

Používám verzi Nette pro PHP5.3 s namespaces.

Podotýkám, že to od začátku nedělalo, ještě před pár hodinami fungoval formulář normálně.

Děkuji.

Editoval kudlajz (19. 11. 2012 18:25)

Nutelac
Člen | 58
+
0
-

Zkuste vymazat cache

Editoval Nutelac (19. 11. 2012 19:14)

kudlajz
Člen | 70
+
0
-

To jsem samozřejmě zkoušel, mazal jsem i cache prohlížeče, zkoušel jsem Chrome, IE a nic.

Hmm, tak to vypadá, že když vykreslím formulář přes {control registrationForm}, tak funguje vše normálně, ale když ho vykresluju ručně přes

{var form => $presenter->getComponent("registrationForm")}
a následně
.
.
$form["name"]->label, $form["name"]->control atd.

Tak už to nefunguje, ale ještě před pár hodinama to šlo..

EDIT: Tak se omlouvám, zapomněl jsem na $form->render(„begin“) a render(„end“). Prosím o smazání.

Editoval kudlajz (19. 11. 2012 19:11)