Nelze odeslat formulář, ani se neprovádí validace
- kudlajz
- Člen | 70
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)
- kudlajz
- Člen | 70
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)