我实现了“计费地址与地址相同”函数,当检查复选框时,它会根据其他字段填充字段。完美的作品。

单击事件的功能。

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

现在,我使用一个事件(jQuery热键插件)自动填充表单中的所有字段,以便我可以轻松,快速地演示和测试表单。我不想使用作弊和填写账单字段作为地址字段
$("#CheckboxForAutofillId").trigger('click');

这在我第一次触发该事件时不起作用,因为在上面的函数中,它会检查checked的属性,但是trigger('click')显然会在更改属性之前调用该事件。

对于我来说,这意味着我必须正确地模拟它。
$("#CheckboxForAutofillId").attr("checked", "checked"); // sets checked
$("#CheckboxForAutofillId").trigger('click');           // fires event then 'unchecks'
$("#CheckboxForAutofillId").attr("checked", "checked"); // rechecks

阅读用于触发的jquery页面,我没有注意到这一点,也没有费心去探究源代码以查看实际发生的情况,但在我看来,理想情况下,触发事件应在设置“checked”属性之前触发事件本身,因为这可以更好地模拟人们选中复选框?

我想念什么吗?

最佳答案

您应该使用change()而不是click()。

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

10-07 12:49
查看更多