猿问

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

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


这是html代码

<button type="button" class="btn btn-bricky btn-sm" onclick="deleteRow('dataTable')"><span class="glyphicon glyphicon-remove"></span> Delete Row</button>


<table id="dataTable" class="table table-striped"  style="font-size: 12px" >

  <tr>

    <td><input type="checkbox" name="chk"/></td>

    <td>

        <select name="subject" id="subject">

                          <option value="Math">Math</option>

                          <option value="Physic">Physic</option>

                          <option value="Chemistry">Chemistry</option>

                          <option value="Biology">Biology</option>

                </select>

Score Min : <input type="number" name="comsMin" style="width:70px" min="0" max="100"/>

Max :  <input type="number" name="comsMax" style="width:70px" min="0" max="100"/></td>


</tr>

</table>

这是 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;

                }

            }

        }

我的问题是我不知道如何以及在哪里编写代码来禁用在新添加的选择框中的第一个选择框中选择的所选选项。


这可能吗?


守候你守候我
浏览 127回答 1
1回答

萧十郎

我们可以有一个单独的表来以隐藏模式存储数据集并在其中维护选择状态。除了隐藏元素,您还可以在javascript变量中维护状态。function syncModdelAdd(tableID){&nbsp; &nbsp; //&nbsp; Get the available selections&nbsp; var table = document.getElementById(tableID);&nbsp; var rowCount = table.rows.length;&nbsp; var dataTable = document.getElementById('dataTable');&nbsp; for(var i=0; i<rowCount; i++){&nbsp; &nbsp; var selectedIndex = table.rows[i].cells[1].childNodes[1].selectedIndex;&nbsp; &nbsp; &nbsp; &nbsp; dataTable.rows[0].cells[1].childNodes[1].options[selectedIndex].disabled=true;&nbsp; }}function syncModelDelete(selectedIndex){&nbsp; var dataTable = document.getElementById('dataTable');&nbsp;&nbsp;&nbsp; &nbsp; dataTable.rows[0].cells[1].childNodes[1].options[selectedIndex].disabled=false;&nbsp; var table = document.getElementById('resultTable');&nbsp; var totalRows = table.rows.length;&nbsp; table.rows[totalRows-1].cells[1].childNodes[1].options[selectedIndex].disabled=false;}小提琴链接:https : //jsfiddle.net/2tfacL9k/
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答