Javascript 当页面上没有复选框时禁用复选框

Javascript 当页面上没有复选框时禁用复选框,javascript,checkbox,Javascript,Checkbox,我试图在没有行的情况下禁用复选框 我尝试了一些复选框:禁用。。。但没关系 function addRow(tableID) { var table = document.getElementById(tableID); var rowCount = table.rows.length; var row = table.insertRow(rowCount); var cell1 = row.insertCell(0); var element1

我试图在没有行的情况下禁用复选框

我尝试了一些复选框:禁用。。。但没关系

 function addRow(tableID) {
     var table = document.getElementById(tableID);
     var rowCount = table.rows.length;
     var row = table.insertRow(rowCount);
     var cell1 = row.insertCell(0);
     var element1 = document.createElement("input");
     element1.type = "checkbox";
     element1.name = "chkbox[]";
     cell1.appendChild(element1);
     var cell2 = row.insertCell(1);
     cell2.innerHTML = rowCount;
     var cell3 = row.insertCell(2);
     cell3.innerHTML = rowCount;
     var cell4 = row.insertCell(3);
     cell4.innerHTML = rowCount;
     var cell5 = row.insertCell(4);
     cell5.innerHTML = rowCount;
     var cell6 = row.insertCell(5);
     cell6.innerHTML = rowCount;
 }

 function deleteRow(tableID) {
   var table = document.getElementById(tableID);
   var rowCount = table.rows.length;

   for (var i = 1; i < rowCount; i++) {
     var row = table.rows[i];
     var chkbox = row.cells[0].children[0];
     if (chkbox != null && chkbox.checked == true) {
       table.deleteRow(i);
       rowCount--;
       i--;
     }
   }
   var rootChkbox = table.rows[0].cells[0].children[0];
   if (rowCount == 1) rootChkbox.checked = false;
 }

 function checkAll() {
     var checkboxes = document.getElementsByTagName('input');
   var val = null;
     for (var i = 0; i < checkboxes.length; i++) {
         if (checkboxes[i].type == 'checkbox') {
             if (val === null) val = checkboxes[i].checked;
             checkboxes[i].checked = val;
         }
     }
 }
函数addRow(tableID){
var table=document.getElementById(tableID);
var rowCount=table.rows.length;
var row=table.insertRow(rowCount);
var cell1=行插入单元格(0);
var element1=document.createElement(“输入”);
element1.type=“复选框”;
element1.name=“chkbox[]”;
单元格1.附加子元素(元素1);
var cell2=行插入单元格(1);
cell2.innerHTML=行数;
var cell3=行插入单元格(2);
cell3.innerHTML=行数;
var cell4=行插入单元格(3);
cell4.innerHTML=行数;
var cell5=行插入单元格(4);
cell5.innerHTML=行数;
var cell6=行插入单元格(5);
cell6.innerHTML=行数;
}
函数deleteRow(tableID){
var table=document.getElementById(tableID);
var rowCount=table.rows.length;
对于(变量i=1;i
希望你们能帮助我


在删除功能中更改此选项:

if (rowCount == 1) rootChkbox.checked = false;
致:

并将其添加到“添加”功能中:

if (rowCount == 1)
{
    rootChkbox.disabled = false;
}
完整代码:

函数addRow(tableID){
var table=document.getElementById(tableID);
var rowCount=table.rows.length;
var row=table.insertRow(rowCount);
var cell1=行插入单元格(0);
var element1=document.createElement(“输入”);
element1.type=“复选框”;
element1.name=“chkbox[]”;
单元格1.附加子元素(元素1);
var cell2=行插入单元格(1);
cell2.innerHTML=行数;
var cell3=行插入单元格(2);
cell3.innerHTML=行数;
var cell4=行插入单元格(3);
cell4.innerHTML=行数;
var cell5=行插入单元格(4);
cell5.innerHTML=行数;
var cell6=行插入单元格(5);
cell6.innerHTML=行数;
var rootChkbox=表。行[0]。单元格[0]。子项[0];
如果(行计数==1)
{
rootChkbox.disabled=false;
}
}
函数deleteRow(tableID){
var table=document.getElementById(tableID);
var rowCount=table.rows.length;
对于(变量i=1;i
正文{
字体:14px/18px Arial;
填充:30px 20px;
背景:灰色;
}
表#数据表{
边缘顶部:10px;
颜色:白色;
}

制作
模型
描述
起始年
年底

类似的方法应该可以:

var checkboxes = document.querySelectorAll("input[type=checkbox]");
if(checkboxes.length == 1) { checkboxes[0].setAttribute('disabled','disabled');}
您可以通过查找父元素来进一步分段选择:

<div id="group1"><input type="checkbox" /></div>
<div id="group2"><input type="checkbox" /></div>

希望能有所帮助。

请在此处发布您的代码。请阅读,并在问题本身中包含a,而不是在第三方网站上。@HenkErtje我看不出您试图在哪里禁用复选框?…当表中没有行时。必须禁用该复选框。1)默认情况下禁用它。2) 在添加行时启用它。3) 如果只删除一行,请在删除行后禁用。没问题!很高兴我能帮忙!如果这解决了你的问题,请接受答案并投票表决。
<div id="group1"><input type="checkbox" /></div>
<div id="group2"><input type="checkbox" /></div>
var checkboxes = document.querySelectorAll("#group1 input[type=checkbox]");