【发布时间】:2014-04-01 01:49:27
【问题描述】:
//if work direction = mexico and departments checked = Shop and CNC
//check off Mexico in Dept. Affected but don't check off Shop and CNC
$('#work_direction').live('click' , function() {
if ($('select[name^="workorder[work_direction]"]').val() == "mexico") {
$('.shop, .cnc').live('click', function(){
$classname = $(this).attr('class');
if($('.' + $classname + ":checked").length > 0){
$('#mexico').attr('checked','checked');
} else {
$('#' + $classname).removeAttr('checked');
}
});
}else if ($('select[name^="workorder[work_direction]"]').val() == "domestic"){
$('.shop, .cnc').live('click', function(){
$classname = $(this).attr('class');
if($('.' + $classname + ":checked").length > 0){
$('#' + $classname).attr('checked','checked');
} else {
$('#' + $classname).removeAttr('checked');
}
});
}else{
$('.cad, .design, .shop, .cnc').live('click', function(){
$classname = $(this).attr('class');
if($('.' + $classname + ":checked").length > 0){
$('#' + $classname).attr('checked','checked');
} else {
$('#' + $classname).removeAttr('checked');
}
});
}
});
这就是我用来进行检查的 jQuery。下面是我的表单的设置方式。
工作方向(选择):
- 国内
- 海上
- 墨西哥
受影响的部门(复选框)?
- [] 加元
- [] 设计
- [] 店铺
- [] 数控系统
- [] 会计
- [] 海上
- [] 墨西哥
部门阵容(复选框)?
- [] c - CAD
- [] d - 设计
- [] s - 商店
- [] m - CNC
所以逻辑是,当工作方向是国内或离岸时,c、d、s、m 在底部被选中,应该被选中的顶部应该是 CAD、DESIGN、SHOP 和 CNC。但是,如果选择了墨西哥并勾选了 c、d、s 或 m,则最应该勾选的是 CAD、DESIGN、MEXICO,而不是 SHOP 和 CNC。
现在有时 CAD 和 DESIGN 不会受到影响,因此如果选择墨西哥,几乎总是 SHOP 或 CNC 会受到影响,因此如果用户在底部选择 s 或 m,则应勾选上面的墨西哥,但不勾选 SHOP 或 CNC .
我希望我的解释不会太混乱,但我不确定为什么我的 jQuery 不起作用。目前,即使选择了墨西哥并选择了 c、d、s 或 m,它也会在受影响的部门中检查 CAD、DESIGN、SHOP、CNC 以及 MEXICO。
【问题讨论】:
-
用于实时点击的即时点击。
-
用
on()代替live(),用prop()代替attr() -
@SridharR 好的,我进行了更改,但我不确定我的代码中的逻辑是否检出。如果我选择墨西哥作为方向,并勾选 s、m,然后我将方向切换为国内非复选框将勾选正确的部门或任何东西。
标签: javascript jquery