Jak připojit signál na checkbox

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

Dá se připojit signál na checkbox nebo to musí jít stále přes js viz. tohle vlákno https://forum.nette.org/…-z-checkboxu

Konkrétní případ – při zakliknutí chci ajaxově změnit status v databázi, bez js musí dojít k reloadu stránky

Jan Endel
Člen | 1016
+
0
-

Ano, JSkem, jak bys chtěl aby to fungovalo?

enumag
Člen | 2118
+
0
-

S požadavkem „bez js musí dojít k reloadu stránky“ se rozluč rovnou – na to ti checkbox nestačí, potřebuješ submit button.

mrataja
Člen | 57
+
0
-

Nevím na co jsem myslel. Máš samozřejmě pravdu.

mrataja
Člen | 57
+
0
-

Zajímalo mě, jestli je postup z výše uvedeného linku je pořád aktuální (vlákno je pět let staré) nebo na to jít jinak.

Climber007
Člen | 105
+
0
-

Více méně ano, způsobů je několik. Pokud to chceš asynchronně přes AJAX, přijde mi nejlepší skrýt CSSkem submit button a na checkbox navázat signál. Asi tak nějak:

$('#checkbox').on('change', function() {
	$.nette.ajax({
		url: signal,
		…
	});
});

URL na signál generuj normálně v šabloně pomocí makra.

Druhá možnost je po změně checkboxu odpálit click na submitu a tím si zavolat callback, který standardně voláš pro zpracování formuláře a úplně stejně to zpracovat. Osobně používám variantu se submitem, protože když by NÁHODOU existoval nějaký blb bez JS, bude to pořád fungovat.

Editoval Climber007 (28. 1. 2015 15:58)