以下是我的代码:
根据我的功能,当我勾选我的复选框时,必须禁用该按钮,当我取消选中时,必须启用复选框按钮。
function assignDefect() {
var new_tc_arry = new Array();
var checkbox = document.getElementsByName('radSize1');
for(var i=0;i<checkbox.length;i++){
if(!checkbox[i].disabled && checkbox[i].checked){
var checkedbox = checkbox[i].value;
new_tc_arry.push(checkbox[i].value);
for(var i=0;i<new_tc_arry.length;i++){
console.log("new_tc_arry["+i+"] -->"+new_tc_arry[i]);
document.getElementById("OrphanbuttonId").disabled =true;
}
}
else {
document.getElementById("OrphanbuttonId").disabled=false;
}
}
The above code is disabling my button when i check my last checkbox.
Its not working for 1st ,2nd..etc checkboxes.**
答案 0 :(得分:0)
问题是因为即使在禁用第1个,第2个等按钮(最后一个复选框除外)之后,您仍然继续进行for循环。基本上,如果取消选中最后一个复选框,则始终会重新启用该按钮。尝试在for循环中添加break语句:
function assignDefect() {
var new_tc_arry = new Array();
var checkbox = document.getElementsByName('radSize1');
for(var i=0;i<checkbox.length;i++){
if(!checkbox[i].disabled && checkbox[i].checked){
var checkedbox = checkbox[i].value;
new_tc_arry.push(checkbox[i].value);
for(var i=0;i<new_tc_arry.length;i++){
console.log("new_tc_arry["+i+"] -->"+new_tc_arry[i]);
document.getElementById("OrphanbuttonId").disabled =true;
}
break; //<---------------------------------------CHANGE HERE
}
else {
document.getElementById("OrphanbuttonId").disabled=false;
}
}
}