使用javascript我遇到了一个问题。有一个带有两个函数的javascript,一个被禁用的复选框用于一个类名,另一个用于另一个。但是在jsp页面上只有一个工作(特别是检查)。
function pilotCB(p) { //this dosen't work
var b = document.getElementsByClassName('p');
var checkValue = p.checked;
for (j = 0; j < b.length; j++) { // iterate from 0 instead of 1
if (b[j] != p){// if checkbox is selected.
b[j].disabled = p.checked;// disable others
}
}
}
function check(self) { //this work
var a = document.getElementsByClassName('cb'); // get elements by class name
var checkValue = self.checked;
for (i = 0; i < a.length; i++) { // iterate from 0 instead of 1
if (a[i] != self){// if checkbox is selected.
a[i].disabled = self.checked;// disable others
}
}
}
JSP页面,调用的部分:
<c:forEach items="${pilotList}" varStatus="i">
<c:set var="navigator" value="${navigatorList[i.index].name}"/>
<c:set var="radioOperator" value="${radioOperatorList[i.index].name}"/>
<c:set var="stewardess" value="${stewardessList[i.index].name}"/>
<tr>
<td>${pilotList[i.index].name}<input class="p" type="checkbox" name="itemId" value="${pilot[i.index].id}" onchange="pilotCB(this)"/></td>
<td>${navigator}<input class="n" type="checkbox" name="itemId" value="${item.id}" onchange="checkN(this)"/></td>
<td>${radioOperator}<input class="cb" type="checkbox" name="itemId" value="${radioOperatorList[i.index].id}" onchange="check(this)"/></td>
<td>${stewardess}<input class="s" type="checkbox" name="itemId" value="${item.id}" onchange="checkS(this)"/></td>
</tr>
</c:forEach>
为什么只有一件我无法理解的作品?