Javascript 在第二个选择框中禁用第一个选择框的选定选项

Javascript 在第二个选择框中禁用第一个选择框的选定选项,javascript,jquery,html,jsp,Javascript,Jquery,Html,Jsp,我想通过插入学生的科目名称和分数范围来查找学生的数据。教师可以使用“添加”按钮添加新主题,也可以删除该主题。此外,上一行中已选择的主题/选项将在下一新行中禁用 下面是html代码 删除行 数学 物理的 化学 生物 最低得分: 最大值: 下面是JavaScript代码 function addRow(tableID) { var table = document.getElementById(tableID); var rowCount = t

我想通过插入学生的科目名称和分数范围来查找学生的数据。教师可以使用“添加”按钮添加新主题,也可以删除该主题。此外,上一行中已选择的主题/选项将在下一新行中禁用

  • 下面是html代码
  • 删除行
    数学
    物理的
    化学
    生物
    最低得分:
    最大值:
    
    下面是JavaScript代码

    function addRow(tableID) {
    
                var table = document.getElementById(tableID);
    
                var rowCount = table.rows.length;
                var row = table.insertRow(rowCount);
    
                var colCount = table.rows[0].cells.length;
    
                for(var i=0; i<colCount; i++) {
    
                    var newcell = row.insertCell(i);
    
                    newcell.innerHTML = table.rows[0].cells[i].innerHTML;
                    //alert(newcell.childNodes);
                    switch(newcell.childNodes[0].type) {
                        case "#text":
                                newcell.childNodes[0].value = "";
                                break;
                        case "#checkbox":
                                newcell.childNodes[0].checked = false;
                                break;
                        case "#select-one":
                                newcell.childNodes[0].selectedIndex = 0;
                                break;
                    }
                }
            }
    //--------------
            function deleteRow(tableID) {
                try {
                var table = document.getElementById(tableID);
                var rowCount = table.rows.length;
    
                for(var i=0; i<rowCount; i++) {
                    var row = table.rows[i];
                    var chkbox = row.cells[0].childNodes[0];
                    if(null != chkbox && true == chkbox.checked) {
                        if(rowCount <= 1) {
                            alert("Cannot delete all the rows.");
                            break;
                        }
                        table.deleteRow(i);
                        rowCount--;
                        i--;
                    }
    
    
                }
                }catch(e) {
                    alert(e);
                }
            }
    
    
    函数addRow(tableID){
    var table=document.getElementById(tableID);
    var rowCount=table.rows.length;
    var row=table.insertRow(rowCount);
    var colCount=table.rows[0].cells.length;
    
    对于(var i=0;i,我们可以使用一个单独的表以隐藏模式存储数据集,并在其中维护选择状态。 除了隐藏元素,您还可以在
    javascript
    变量中维护状态

    function syncModdelAdd(tableID){
        //  Get the available selections
      var table = document.getElementById(tableID);
      var rowCount = table.rows.length;
    
      var dataTable = document.getElementById('dataTable');
    
      for(var i=0; i<rowCount; i++){
        var selectedIndex = table.rows[i].cells[1].childNodes[1].selectedIndex;
            dataTable.rows[0].cells[1].childNodes[1].options[selectedIndex].disabled=true;
      }
    }
    
    function syncModelDelete(selectedIndex){
      var dataTable = document.getElementById('dataTable');  
        dataTable.rows[0].cells[1].childNodes[1].options[selectedIndex].disabled=false;
    
      var table = document.getElementById('resultTable');
      var totalRows = table.rows.length;
      table.rows[totalRows-1].cells[1].childNodes[1].options[selectedIndex].disabled=false;
    }
    
    函数syncModdelAdd(tableID){ //获取可用的选项 var table=document.getElementById(tableID); var rowCount=table.rows.length; var dataTable=document.getElementById('dataTable');
    对于(var i=0;我尝试了代码,这很有帮助,但是当我删除行时出现问题,选项仍然是禁用的。但是我将尝试自己调整代码,看看它是否有效。非常感谢。
    function syncModdelAdd(tableID){
        //  Get the available selections
      var table = document.getElementById(tableID);
      var rowCount = table.rows.length;
    
      var dataTable = document.getElementById('dataTable');
    
      for(var i=0; i<rowCount; i++){
        var selectedIndex = table.rows[i].cells[1].childNodes[1].selectedIndex;
            dataTable.rows[0].cells[1].childNodes[1].options[selectedIndex].disabled=true;
      }
    }
    
    function syncModelDelete(selectedIndex){
      var dataTable = document.getElementById('dataTable');  
        dataTable.rows[0].cells[1].childNodes[1].options[selectedIndex].disabled=false;
    
      var table = document.getElementById('resultTable');
      var totalRows = table.rows.length;
      table.rows[totalRows-1].cells[1].childNodes[1].options[selectedIndex].disabled=false;
    }