Autor Zpráva
DeeDeeX
Profil
Zdravím,

potřebovala bych poradit, jak v jquery zjistím v jakém formuláři bylo kliknuto.
Při označení checkboxu se spustí script jquery a označený checbox předá hodnotu id vybrané služby (a momentálně také iterátor, který formulář byl označený)

$("form input:checkbox").live('click', function (event) {

   event.preventDefault();
   var form = jQuery(this);   

   var temp = jQuery('input:checkbox:checked').attr('value');
   var exploded = temp.split('-');
   var id_sl=exploded[0];
   var it= exploded[1];
   var nazev= jQuery('input[name=sluzba_'+id_sl+'_'+it+']').attr('value');
   var cena= jQuery('input[name=cena_'+id_sl+'_'+it+']').attr('value');
  


Ale potřebovala bych se zbavit toho iterátoru. Jquery tak úplně zbytečně prochází celou stránku, místo aby se zaměřil jen na ten fomulář, ve kterém jsem klikla. Jde nějak zjistit, nazev nebo id formuláře, ve kterém jsem kliknula na checkbox?

Myslela jsem, že by to pak šlo nějak takto:

var nazev= jQuery(form+'>input[name=sluzba_'+id_sl+']').attr('value');

Ale potřebovala bych ten nazev formuláře.


Děkuju
Chamurappi
Profil
Reaguji na DeeDeeX:
Jde nějak zjistit, nazev nebo id formuláře
Proč zjišťovat název, když můžeš mít rovnou ten cílový objekt… a ten je v this.form.
Formulářové prvky pak mají své reference navěšené na ten objekt, tedy prvek s name="sluzba" je v this.form.sluzba (a jeho value je ve this.form.sluzba.value). Bez jQuery je ten zápis jednodušší.
_es
Profil
DeeDeeX:
Okrem toho, spoľahlivé zrušenie odoslanie formulára je cez udalosť onsubmit formulára, nie cez udalosti klikania na prvky formulára.
DeeDeeX
Profil
Chamurappi:
a jeho value je ve this.form.sluzba.value
Děkuju
A jak prosim vložím v tomto zápisu převzaté id služby?
Těch služeb je v jednom formuláři více, potřebuju vybrat tu službu, na kterou bylo kliknuto.
var nazev= this.form.sluzba_+id_sl(? jak ?).value;
Chamurappi
Profil
Reaguji na DeeDeeX:
Viz Dvojí přístup ke členu objektu.
DeeDeeX
Profil
Děkuju.. Tak to budu muset dost překopat :-)
Ale jestli mě to zbaví těch iterátorů, stojí to za to.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: