我有一个表,其中一些行在第一列上有复选框,如果用户点击,它会调用一些禁用相应行的其他字段的javascript方法。
这些输入的结构如下:
<input type="checkbox" name="ans_R2057321_Q2060122" id="ans_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,这应该是正确的方法,因为复选框的状态正在改变,但不知何故它不起作用......任何想法我能做什么?
答案 0 :(得分:1)
我发现了我所缺少的东西,因为我看到几个人遇到同样的问题,我认为我的解决方案对其他人有帮助。
我刚刚添加了一个触发器来改变&#39;。
function noQuoteAllRowsOfCurrPage(){
jQuery("input:checkbox[id^=ans_R]").each(function(i,e) {
jQuery(e).click();
jQuery(e).prop('checked', true).trigger('change');
});
}
答案 1 :(得分:1)
JQuery的.prop()
函数不会触发更改事件。你可以
1 - 手动触发事件
jQuery(e).prop('checked', true).trigger('change');
2 - 使用将检查输入的.click()
函数,并触发事件。
jQuery(e).click();