invalidateControl() a nefunkční toggle
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- zeleny_raoul
- Člen | 3
Ahoj, používám Nette 2.0, ve formuláři mám několik závislých selectboxů a zároveň používám toggle ve stylu:
$form->addCheckbox("active0", "Activate section 0")
->addCondition(UI\Form::EQUAL, TRUE)
->toggle("section0");
/* section 0 */
//...
$form->addSelect('year0', 'Vehicle Year', $this->getYears())
->setPrompt("Please select a year.")
->addRule(UI\Form::FILLED, "Please provide a year.");
$form->addDependentSelectBox('make0', 'Make', $form["year0"], callback($this, "getMakes_sec0"))
->setPrompt("Select make.");
if ($this->presenter->isAjax()) {
$form["make0"]->addOnSubmitCallback(callback($this, "invalidateControl"), "formSnippet");
}
//...
$form->addCheckbox("active1", "Activate section 1")
->addCondition(UI\Form::EQUAL, TRUE)
->toggle("section1");
/* section 1 */
//...
$form->addSelect('year1', 'Vehicle Year', $this->getYears())
->setPrompt("Please select a year.")
->addRule(UI\Form::FILLED, "Please provide a year.");
$form->addDependentSelectBox('make1', 'Make', $form["year1"], callback($this, "getMakes_sec1"))
->setPrompt("Select make.");
if ($this->presenter->isAjax()) {
$form["make1"]->addOnSubmitCallback(callback($this, "invalidateControl"), "formSnippet");
}
Když vyberu rok v prvním selectu v sekci 0 (year0), všechno běží, ale zobrazí se celý formulář, nezávisle na hodnotách checkboxů activate. Předpokládám, že invalidace snippetu prostě vše překleslí a ignoruje toggle. poradí mi někdo, jak to opravit?