onchange=sbumit(), button pri isSubmittedBy by měl vracet true?
- mcmatak
- Člen | 504
pokud mám formulář a v něm select, s js funkcí onchange submit, nette vezme první button jako odeslaný to ano, ale pri testování
<?php
public function modulesFormSubmitted(AppForm $form) {
if ($form->isSubmitted()) {
if ($form['save']->isSubmittedBy()) {
} elseif ($form['change']->isSubmittedBy()) {
}
vrací $form['change']->isSubmittedBy() FALSE přesto, že je první, vlastně aplikace se tváří jako, že žádný submit nebyl odeslán, jediná šance je navěsit události onclick na jednotlivé buttony
?>
- mcmatak
- Člen | 504
sory, dnešní verze, tento kod
presenter
<?php
final class Admin_TestPresenter extends Admin_BasePresenter {
public function createComponentForm($name) {
$form = new AppForm($this, $name);
$form->addSelect("test", "Vyber", array(1, 2, 3, 4, 5, 6))->getControlPrototype()->onchange("submit();");
$form->addSubmit('btn1', 'A');
$form->addSubmit('btn2', 'B');
$form->onSubmit[] = array($this, 'formSubmitted');
return $form;
}
public function formSubmitted(AppForm $form) {
$values = $form->getValues();
Debug::dump($values);
if ($form['btn1']->isSubmittedBy()) {
echo "gud";
die();
}
}
public function renderDefault() {
$this->template->titleWeb = 'Test formulářů';
$this->template->titlePage = 'Test';
}
}
?>
sablona
{control form}
bohužel stále nefunguje
Editoval mcmatak (14. 9. 2009 13:36)
- David Grudl
- Nette Core | 8227
Aha, už chápu kde je zakopaný pes.
Spíš mě to ale přimělo k úvaze, jestli takto je to skutečně dobře. Jestli je skutečně ideální, aby se to tvářilo že došlo k odeslání prvním tlačítkem…
- mcmatak
- Člen | 504
no, chová se tak přece např. internet explorer, při stisknutí enteru odesílá prvním tlačítkem, samozřejmě to mám navěšené na onclick, ale třeba v dokumentaci píšeš že ajax a další js funkce jsou zajištěny, protože v případě, že není odesláno žádným tlačítkem považuje se první za odeslané, nechť někdo hodí svoje názory, kdy takového chování by bylo proti něčemu, ale přijde mi logické
ještě jsem se nesetkal se situací, kdy by mi takové chování vadilo za posledních pár let