Javascript 复选框和onchange方法用法

Javascript 复选框和onchange方法用法,javascript,jquery,html,checkbox,onchange,Javascript,Jquery,Html,Checkbox,Onchange,我有一个表,其中的一些行在第一列上有复选框,如果用户单击,它将调用一些javascript方法来禁用相应行的其他字段 这些输入的结构如下: <input type="checkbox" name="ans_R2057321_Q2060122" id="ans_R2057321_Q2060122" value="2002241" onclick="matrix.disableFields(this, 'R2057321');recalculateRowFormulas('2057321');

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

这些输入的结构如下:

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

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

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

我刚刚添加了一个“改变”的触发器

function noQuoteAllRowsOfCurrPage(){
    jQuery("input:checkbox[id^=ans_R]").each(function(i,e) {
        jQuery(e).click();
        jQuery(e).prop('checked', true).trigger('change');
    });
}
JQuery的
.prop()
函数不会触发更改事件。你也可以

1-手动触发事件

jQuery(e).prop('checked', true).trigger('change');
2-使用
.click()
函数检查输入,并触发事件。

jQuery(e).click();

请不要像那样使用内联事件处理——读取和维护它太糟糕了elements@Periback你是否考虑过触发两者?代码>jQuery(e).prop('checked',true.).trigger('change').trigger('click')我把你的第二个想法和我的(这是你的第一个)结合在一起,它按照我的预期工作。。。(我发现还有很多其他javascript代码在影响我的…)我完全按照你刚才说的做了(我在这里打开了页面,所以没有收到你的最新评论)只有一件事。。我必须在更改之前触发单击。。。由于某种原因,它不能像你建议的那样在一行中使用它。。。查看我的最新答案
jQuery(e).click();