Zajaxování samostatného inputu na onChange()
- miler
- Člen | 75
Dobrou noc všem :-) Chtěl bych vás poprosit o radu s ajaxem. Mám v šabloně komponenty samostatný input s ID „coef“, do kterého chci zadat hodnotu koeficientu, kterým budu přenásobovat proměnnou. Mám zatím toto:
<script type="text/javascript">
$.nette.ext('multiply', {
load: function () {
#('coef').change(function () {
type: 'get',
url: {link multiply!},
data: {
coef: $(this).val()
}
});
}
});
</script>
Což ale neprodukuje nic, ani žádný dotaz ve firebugu. Za správné konstelace by mi to mělo volat handle v komponentě a za běhu měnit ve výpisu výsledek výpočtu. $.nette.init() volám jinde.
- Michal Vyšinský
- Člen | 608
Možná překlep jen zde, ale jestli ne, tak je chyba zde:
#('coef').change(function ()
na
$('#coef').change(function ()
Edit: Osobně se divím, že ti firebug neukáže žádnou chybu, protože #() není funkce :)
Editoval CherryBoss (3. 2. 2013 15:28)
- miler
- Člen | 75
Díky. To jsem opravil a volání např. alertu už mi funguje. Pokud ale nechám vnitřek change funkce tak jak je tak to nedělá nic.
Pokud ho nahradím něčím jako:
<script>
var $url = {link multiply!};
$.get($url + "&multiplyComp-coef=" + $(this).val());
</script>
tak se mi požadavek na handler pošle, jednou. Pokud změním input podruhé tak už to neudělá nic.
A takto to funguje:
<script type="text/javascript">
$('body').on('change', '#coef', function(e) {
var $url = {link multiply!};
$.get($url + "&multiplyComp=" + $(this).val());
});
</script>
Editoval miler (4. 2. 2013 0:32)