我有一个HTML表,最多由25行组成. 典型的一排:
function chkcountfn(required, el_id) {
let memid = getid(el_id);
let dateElement = "awarddate_" + memid;
let datestr = document.getElementById(dateid).innerHTML
let count = 0;
// now need to go through all checkboxes with id of el_id and count those checked
if (count >= required) {
alert("Required number of skills acheived");
if (datestr.length === 0) {
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth() + 1;
var yyyy = today.getFullYear();
if (dd < 10) {
dd = '0' + dd;
}
if (mm < 10) {
mm = '0' + mm;
}
today = dd + '/' + mm + '/' + yyyy;
document.getElementById(dateid).innerHTML = today;
}
} else {
document.getElementById(dateid).innerHTML = "";
}
}
function getid(str) {
var fields = str.split('_');
var id = fields[1];
return id;
}
<table>
<tbody>
<tr>
<td id="128" name="name">Mike Starmer</td>
<td><input type='checkbox' id='chk_128[0]' checked="checked" disabled="disabled" /></td>
<td><input type='checkbox' id='chk_128[1]' checked="checked" disabled="disabled" /></td>
<td><input type='checkbox' id='chk_128[2]' /></td>
<td><input type='checkbox' id='chk_128[3]' /></td>
<td><input type='checkbox' id='chk_128[4]' /></td>
<td><input type='checkbox' id='chk_128[5]' checked="checked" disabled="disabled" /></td>
<td><input type='checkbox' id='chk_128[6]' /></td>
<td><input type='checkbox' id='chk_128[7]' /></td>
<td><input type='checkbox' id='chk_128[8]' checked="checked" disabled="disabled" /></td>
<td><input type='checkbox' id='chk_128[9]' /></td>
<td id="passdate_128"> </td>
<td id="awarddate_128"></td>
<td hidden id="memid_128">128</td>
<td hidden id="classid_128">7</td>
<td hidden id="badgeid_128">7</td>
</tr>
</tbody>
</table>
我应该补充说,该表是使用PHP ECHO调用构建的,
我正在try 添加一个onchange
或onclick
事件到每个复选框将计数所有复选框在一行中,并显示一个alert ,如果超过80%的复选框被选中.
我试过在网页上搜索Java的onChange和onClick功能,但似乎都与单一的CheckBox有关.
到目前为止,我想出了以下几点:
- 对于每个复选框,添加一个将复选框id传递给被调用函数onclick="chkcountfn(8,this.id)"的onClick或onChange动作,8是需要选中的项数.
- 该函数获取传递的ID,然后解析具有该ID的所有复选框,并对选中的复选框进行计数.如果该数字= 80%,则弹出一个alert ,并将当前日期写回行"passdate_x".
老实说,我已经判断了日期替换,这是我通过搜索这个网站找到的,但没有设法测试其他任何东西.
这是我第一次try 使用HTML/Java脚本,正如您所看到的,我陷入了循环遍历复选框的部分,如果您对我做错了什么提出任何有用的意见,我也将不胜感激.此外,使用onchange或onClick事件更好,因为我了解到一些iPhone存在问题,因为它们不关联复选框和点击事件.