2011-06-24 8 views
5

"Fatura adresi Adresle aynı" tür işlevi uyguluyorum, bir onay kutusu işaretlendiğinde, alanları diğer alanlara göre doldurur. Mükemmel çalışıyor.JQuery Tetikleyici onay kutusu: işaretli özniteliğin ayarlanmasından önce tıklatma olayıyla ilişkili işlev gerçekleşiyor

tıklama etkinliğinde fonksiyon ..

if ($(this).attr('checked')) { 
     // copy address fields to billing fields 
    } 
    else{ 
     // clear fields 
    } 

Şimdi yüzden kolayca ve hızlı bir şekilde demo ve formu test edebilirsiniz formda tüm alanları doldurun otomatik bir olay (jquery kısayol eklentisi) kullanmak . Bunun yerine ben Bu oznıtelığı denetler denir yukarıdaki işlevinde, ben olayı ilk kez çalışmıyor

$("#CheckboxForAutofillId").trigger('click'); 

kullanmak istediğiniz adres alanları olarak fatura alanlarında hile ve dolum kontrol edilir, ancak tetikleyici ('klik'), niteliği değiştirmeden ÖNCE olayı çağırır.

bana bunu yapmak zorunda doğru simüle etmek için anlamı

.. tetikleyici için jQuery sayfasını Okuma

$("#CheckboxForAutofillId").attr("checked", "checked"); // sets checked 
$("#CheckboxForAutofillId").trigger('click');   // fires event then 'unchecks' 
$("#CheckboxForAutofillId").attr("checked", "checked"); // rechecks 

, ben bu sözü fark etmedi, ben kazmak için rahatsız değil gerçekte ne olduğunu görmek için kaynak ama bana öyle görünüyor ki, tetikleyici olayı, olayın kendisini ateşlemeden önce 'kontrol edilen' özniteliğini ayarlamalıdır, çünkü bu bir onay kutusunu işaret eden bir kişinin daha iyi bir simülasyonudur?

Bir şey mi eksik?

cevap

8

click() yerine change() kullanmalısınız.

$("#CheckboxForAutofillId").change(function() 
{ 
    if(this.checked) ... 
}); 
+1

js/jquery karışımı 1 doğru kullanımını görmek her zaman mutlu – BumbleB2na

İlgili konular