Javascript 如何禁用复选框?
当使用数组填充复选框时,如何禁用复选框Javascript 如何禁用复选框?,javascript,jsp,Javascript,Jsp,当使用数组填充复选框时,如何禁用复选框 <c:forEach var="item" items="${flightItems}"> <c:set var="k" value="${k+1}"/> <tr> <td><c:out value="${k}"/></td> <td>${item.startPoint}</td> <td&
<c:forEach var="item" items="${flightItems}">
<c:set var="k" value="${k+1}"/>
<tr>
<td><c:out value="${k}"/></td>
<td>${item.startPoint}</td>
<td>${item.endPoint}</td>
<td><input id="cb" type="checkbox" name="itemId" value="${item.id}" onchange="check(this)"disabled/></td>
</tr>
</c:forEach>
${item.startPoint}
${item.endPoint}
我需要通过点击一个复选框,其余的被禁用。而我所有的尝试都导致所有复选框都被禁用。这是我的复选框方法。我理解我的错误,但我不知道如何改正。你能建议点什么吗
function check(self) {
var a = document.getElementById('cb');
var checkValue = self.checked;
for (i = 1; i < a.length; i++) {
if (a[i].type == 'checkbox')
a[i].checked = checkValue;
}
}
功能检查(自检){
var a=document.getElementById('cb');
var checkValue=自检;
对于(i=1;i
类似的内容应该会为您指明正确的方向
首先,从id
更改为class
。ID始终是唯一的,而对于如下逻辑组件,类可以是相同的:
<c:forEach var="item" items="${flightItems}">
<c:set var="k" value="${k+1}"/>
<tr>
<td><c:out value="${k}"/></td>
<td>${item.startPoint}</td>
<td>${item.endPoint}</td>
<td><input class="cb" type="checkbox" name="itemId" value="${item.id}" onchange="check(this)"disabled/></td>
</tr>
</c:forEach>
${item.startPoint}
${item.endPoint}
第二,
function check(self) {
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 && self.checked) // if checkbox is selected.
a[i].disabled = true; // disable others
}
}
功能检查(自检){
var a=document.getElementsByClassName('cb');//按类名获取元素
var checkValue=自检;
对于(i=0;i
例如:
1
两个
三
四
功能检查(自检){
var a=document.getElementsByClassName('cb');//按类名获取元素
var checkValue=自检;
对于(i=0;i
@VIRICH希望这对你有帮助是的,它真的对我有帮助。但是现在如何检查,如果有一个重复的点击复选框变为启用?@VIRICH-这不是很简单吗?只要玩玩if
逻辑-该死,我在寻找更复杂的解决方案)谢谢)当然。如果它解决了您的问题,您可以接受它作为答案。:)