Validace formuláře, stále nechápu

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

Ahojte,

mám krásný formulář. Jedná se o selectbox, kterým si uživatel vybírá v jakém se nachází skladu. Je odesílán pomocí ajaxu při akci onchange.

Presenter:

public function createComponentMyForm($name) {
	$form = new UI\Form($this, $name);
	$form->addSelect('mySelect', "Muj vyber:", $this->models->model->getMyItems() );

	$form->onSuccess[] = callback($this, 'myFormOnFormSubmitted');
}

public function myFormOnFormSubmitted(UI\Form $form) {
	# zpracovani...
}

Šablona:

<script type="text/javascript">
$(function () {
	var frm = $("#frm-myForm");
	var slc = frm.find("select");

	slc.change(function () {
		frm.ajaxSubmit(function (payload) {
			$.nette.success(payload);
		});
	});
});
</script>
{widget myForm}

Jedná se mi o to, že s nejvetší pravděpodobností se ten formulář nevaliduje a proto není vykonána ta metoda myFormOnFormSubmitted. Nastíníte nebo vysvětlíte mi prosím kdy a jak validace formuláře probíhá? Není to poprvé co se na tom zasekávám…

btw je tu ještě jedna věc, kterou jsem nezmínil. Na DEVELOPMENT modu mi to normálně funguje…

22
Člen | 1478
+
0
-
  • nemáš tam žádné pravidlo, takže se nemá co validovat
  • problém je, že pokud dáš callback do ajaxSubmit(), tak to chcípne. Obejít takto se dá..
	frm.ajaxSubmit().success(function (payload) {
	$.nette.success(payload);
});

Editoval 22 (5. 9. 2011 22:03)

polonium
Člen | 22
+
0
-

Mno tak jsem vypustil ten ajax a tomu selectu jsem přidal ->addAttribute('onchange', "submit();"). Ten problém s validací, ale nezmizel… Nevím jestli to má vliv ale ten select používá prompt.

Editoval polonium (12. 9. 2011 21:02)

polonium
Člen | 22
+
0
-

Takže před minutkou jsem na to kápnul :D Ono mi tak trochu nedošlo, že když použiju metodu addError() tak je formulář je vlastne invalidní. Mno byl to špatný nápad použít formulářovou chybu jako upozornění, že má být vybrána nějaká možnost…