jjzjj

javascript - Jquery 触发复选框 : function tied to click event occurs before the checked attribute is set

coder 2025-03-11 原文

我正在实现“帐单地址与地址相同”类型的功能,当复选框被选中时,它会根据其他字段填充字段。完美运行。

点击事件的函数..

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

现在我使用一个事件(jquery 热键插件)来自动填写表单中的所有字段,这样我就可以轻松快速地演示和测试表单。而不是欺骗和填写账单字段作为我想使用的地址字段

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

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

这意味着我必须正确地模拟它......

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

阅读触发器的 jquery 页面,我没有注意到这一点,我也没有费心去挖掘源代码以查看实际发生了什么,但在我看来,理想情况下,触发器事件应该设置为“已检查” ' 触发事件本身之前的属性,因为这是对检查复选框的人的更好模拟?

我错过了什么吗?

最佳答案

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

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

关于javascript - Jquery 触发复选框 : function tied to click event occurs before the checked attribute is set,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6474076/

有关javascript - Jquery 触发复选框 : function tied to click event occurs before the checked attribute is set的更多相关文章

随机推荐