我有一个页面,其中有2组复选框。当Set 2底部的复选框被选中时,它会选中上面集合1中相应的复选框。事情是这样的,我在第一组1的复选框下有一个“添加”按钮,它复制了第二组复选框。但是,这只是将另一个行项添加到特定的部门。
因此,用户可以为附加到它的多个部门发出具有多个任务的工作顺序。
有关详细说明,请参阅编辑。
现在的问题是,第一个阵容项目检查工作,但任何其他阵容项目,我添加不起作用时,退出。
$('.cad, .design, .shop, .cnc').on('change', function() {
// Split into space-delimited array in case we want
// to check off more than one
var elemsToCheck = $(this).data('check').split(' ');
var checked = $(this).attr('checked');
$.each(elemsToCheck, function() {
$('#' + this).attr('checked', !!checked);
});
});您可以查看一下本文中的jquery,看看我尝试过的代码:http://jsfiddle.net/Bg5Uk/。
编辑:再试一次解释一下它是如何工作的。
工具(让我们称之为工具X)已经准备好被启动和制造,所以经理必须向他的员工提交一份工作订单。
现在,当经理提交工作订单时,CAD、CNC、SHOP和DESIGN都会收到电子邮件通知,以便他们能够阅读工作订单并开始工作。
问题:检查只处理第一个任务(1) (队列#1)。任何其他添加的任务都不会检查相应的部门。这是一个问题,因为Task 2和3可能会在任务上取消“设计和商店”,但是部门将不会收到电子邮件,因为它们没有在第一组复选框上被选中。
您可能会问自己,为什么经理不重新检查一下表单,并检查一下通知和工作订单应该发送到的部门。我甚至不知道答案,我只是认为这归结为懒惰和匆忙填补这些东西。
编辑2:
如果我使用下面这样的内容来检查返回的值。对于第一个队列复选框,它返回它应该注销的复选框。然而,对于第二阵容,当我添加一个新的阵容,没有任何回报。我不明白..。
$("input[name^='lineitem']").on('change', function() {
var elemsToCheck = $(this).data('check').split(' ');
var checked = $(this).prop('checked');
alert(elemsToCheck); //returns cad, design, shop, cnc, etc.
$.each(elemsToCheck, function() {
$('#' + this).prop('checked', !!checked);
});
}); 发布于 2014-07-16 19:45:19
如果代码适用于第一行(根据您的说法)(“检查只处理第一个任务(1) (队列#1)”),那么这很可能解决您面临的问题:
只需将代码的给定部分替换为:
$(document).on('change','.cad, .design, .shop, .cnc', function() {
var elemsToCheck = $(this).data('check').split(' ');
var checked = $(this).prop('checked');
$.each(elemsToCheck, function() {
$('#' + this).prop('checked', !!checked);
});请注意,我还用prop更改了prop
更新:
在这里查看您的代码:
$template = '<tr>\
<td><input type="hidden" id="number" value="${num}" /><input style="width:20px" class="number" name="lineitem[${num}][num]" value="${num}" /></td>\
<td>\
<ul>\
<li><input class="cad" type="checkbox" name="lineitem[${num}][affects][cad]" /><label><strong>C</strong> - CAD</label></li>\
<li><input class="design" type="checkbox" name="lineitem[${num}][affects][design]" /><label><strong>D</strong> - DESIGN</label></li>\
<li><input class="shop" type="checkbox" name="lineitem[${num}][affects][shop]" /><label><strong>S</strong> - SHOP</label></li>\
<li><input class="cnc" type="checkbox" name="lineitem[${num}][affects][cnc]" /><label><strong>M</strong> - CNC</label></li>\
</ul>\
</td>\
<td>\
<ul>\
<li><input type="checkbox" name="lineitem[${num}][engineering_changes]" /><label>Engineering</label></li>\
<li><input type="checkbox" name="lineitem[${num}][correction_changes]" /><label>Correction</label></li>\
</ul>\
</td>\
<td><textarea style="width:100%; height:100%" name="lineitem[${num}][desc]"></textarea></td>\
<td><a class="remove" href="javascript:void(0)">Remove</a></td>\
</tr>';在模板中没有为您的任何元素定义data-check,在这里尝试为新添加的项定义它,这样就可以了。
https://stackoverflow.com/questions/24788012
复制相似问题