复选框和onchange方法用法

Checkbox and onchange method usage

本文关键字:用法 方法 onchange 复选框      更新时间:2023-09-26

我有一个表,其中一些行在第一列上有复选框,如果用户单击,它会调用一些javascript方法来禁用相应行的其他字段。

这些输入的结构如下:

<input type="checkbox" name="answers_R2057321_Q2060122" id="answers_R2057321_Q2060122" value="2002241" onclick="matrix.disableFields(this, 'R2057321');recalculateRowFormulas('2057321'); alignTDs();" />

我实现了一个链接,当用户点击它时,它必须选择所有这些复选框,所以我这样做:

function noQuoteAllRowsOfCurrPage(){
    jQuery("input:checkbox[id^=ans_R]").each(function(i,e) {
        jQuery(e).prop('checked', true);
    });
}

这只需在屏幕上id以ans_R开头的每个复选框中迭代,然后将CB状态检查为true。它确实有效,但问题是在输入复选框的onclick属性上调用的javascript函数没有运行。我做的第一件事是从onclick更改为onchange,这应该是正确的方法,因为复选框的状态正在更改,但不知何故它不起作用。。。你知道我能做什么吗?

JQuery的.prop()函数不会触发更改事件。你要么可以

1-手动触发事件

jQuery(e).prop('checked', true).trigger('change');

2-使用.click()函数,该函数将检查输入,并触发事件

jQuery(e).click();

我找到了我缺少的东西,因为我看到几个人都有同样的问题,我认为我的解决方案可以对其他人有所帮助。。

我只是添加了一个"改变"的触发器。

function noQuoteAllRowsOfCurrPage(){
    jQuery("input:checkbox[id^=ans_R]").each(function(i,e) {
        jQuery(e).click();
        jQuery(e).prop('checked', true).trigger('change');
    });
}