【发布时间】:2025-12-04 23:15:01
【问题描述】:
我想知道是否有人可以帮助我完成这项工作。
我正在使用 HTML 创建一个表格,该表格至少有 1 行但没有最大行数 - 因为它们可以由用户添加/删除 - 4 列,第 1 列包含一个复选框,最后 2 列包含 drop下拉菜单。
我希望只有在选中该行的复选框时才能将这些菜单的值存储在数组中。例如,如果第一行有 1 和 A 作为它的下拉值,第二行有 2 和 B。如果只检查了第 1 行,则数组应该只包含 [1,A]。相反,我的包含所有值,包括未检查的值,即 [1,A,2,B]。
我的Javascript函数和html表格代码如下:
function calculate(textID) {
var table = document.getElementById('course'); //id of table
var rowCount = table.rows.length;
var array = []; //array to hold the values
var c = 0;
dmenus = document.getElementByTagName("select"); //get the drop down menus
for (var a = 1; a < rowCount; i++) { //a = 1 as the 1st row contains column headings
var row = table.rows[a];
var check = row.cells[0].childNodes[0];
if (null != check && true == check.checked) {
for (var b = 0; b < dmenus.length; b++) {
val = dmenus[b].options[dmenus[b].selectedIndex].value;
array[c] = val; //set index of array to equal value of dropdown box
c++;
}
} else {
b++;
}
}
<table id="course">
<tr>
<td><input type="checkbox" name="ucheck" id="ucheck" onclick="checkAll('course')" /></td>
<th style="color:white">Course Title</th>
<th style="color:white">Credits</th>
<th style="color:white">Grade</th>
</tr>
<tr>
<td><input type="checkbox" name="tick" id="tick" /></td>
<td><input type="text" /></td>
<td>
<select name="credits" id="credits">
<option...</select></td>
<td>
<select name="grade" id="grade">
<option...</td>
</table>
它只适用于第一行,但如果有超过 1 行,它就不会做它应该做的事情。我正在开发的编码平台似乎不支持 JQuery,因此非常感谢 Javascript 代码。
【问题讨论】:
标签: javascript checkbox html-table