admin管理员组文章数量:1332881
I am implementing a "Billing address is same as Address" type function, which when a checkbox is checked fills the fields based on the other fields. Works perfectly.
The function for the click event..
if ($(this).attr('checked')) {
// copy address fields to billing fields
}
else{
// clear fields
}
Now I use an event (jquery hotkey plugin) to auto fill all of the fields in the form so I can easily and quickly demo and test the form. Instead of cheating and filling in the billing fields as the address fields i want to use
$("#CheckboxForAutofillId").trigger('click');
This does not work the first time I fire the event, as in the above function which is called it checks for the attribute of checked, however the trigger('click'), apparently calls the event BEFORE it changes the attribute.
Which means for me to simulate it correctly I have to do this..
$("#CheckboxForAutofillId").attr("checked", "checked"); // sets checked
$("#CheckboxForAutofillId").trigger('click'); // fires event then 'unchecks'
$("#CheckboxForAutofillId").attr("checked", "checked"); // rechecks
Reading the jquery page for trigger, I didn't notice this mentioned, and I haven't bothered to dig through the source to see what actually is occurring but it seems to me that ideally the trigger event should set the 'checked' attribute before firing the event itself as that is a better simulation of a person checking a checkbox?
Am I missing something?
I am implementing a "Billing address is same as Address" type function, which when a checkbox is checked fills the fields based on the other fields. Works perfectly.
The function for the click event..
if ($(this).attr('checked')) {
// copy address fields to billing fields
}
else{
// clear fields
}
Now I use an event (jquery hotkey plugin) to auto fill all of the fields in the form so I can easily and quickly demo and test the form. Instead of cheating and filling in the billing fields as the address fields i want to use
$("#CheckboxForAutofillId").trigger('click');
This does not work the first time I fire the event, as in the above function which is called it checks for the attribute of checked, however the trigger('click'), apparently calls the event BEFORE it changes the attribute.
Which means for me to simulate it correctly I have to do this..
$("#CheckboxForAutofillId").attr("checked", "checked"); // sets checked
$("#CheckboxForAutofillId").trigger('click'); // fires event then 'unchecks'
$("#CheckboxForAutofillId").attr("checked", "checked"); // rechecks
Reading the jquery page for trigger, I didn't notice this mentioned, and I haven't bothered to dig through the source to see what actually is occurring but it seems to me that ideally the trigger event should set the 'checked' attribute before firing the event itself as that is a better simulation of a person checking a checkbox?
Am I missing something?
Share Improve this question asked Jun 24, 2011 at 21:43 SteffanSteffan 3175 silver badges16 bronze badges1 Answer
Reset to default 8you should use change() instead of click().
$("#CheckboxForAutofillId").change(function()
{
if(this.checked) ...
});
本文标签:
版权声明:本文标题:javascript - Jquery Trigger checkbox: function tied to click event occurs before the checked attribute is set - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1742310617a2450794.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论