我有一个html表单,其中有很多复选框,顶部有一个Select All框,如何根据Select All框选择自动选择下面的所有复选框?
我不想显示代码,因为它看起来很讨厌,我正在调试一个旧的应用程序,但是既然你问过,这里是:
<script language="javascript">
function selectAll2(value) {
var elem = document.forms[1].getElementsByTagName("select");
var count = ${questionCount};
for(var i = 1; i <= count; i++) {
if(i != 23 || (i==23 && ${w.carrier.stateOfDomicile ne 'FL'})) {
elem[i].value = value;
showNoShowQuestionaire(i,'Y','N',value);
}
}
}
</script>
<!-- Question # ${n} -->
<tr>
<td class="${labelClass}" align="right" valign="top" width=26%>
${n}.
</td>
<td class="${labelClass}" align="left">
${q}
</td>
<c:choose>
<c:when test="${not_applicable eq 'Y'}">
<td valign="top">
<div id="QT_${n}">
<html:select disabled="${disabled}" property="answers" styleClass="display: none;" value="${s}">
<html:option value="Y">Yes</html:option>
</html:select>
</div>
<script language="javascript">
document.getElementById("QT_${n}").style.display = 'none';
</script>
</td>
</c:when>
<c:otherwise>
<td valign="top">
<html:select disabled="${disabled}" property="answers" styleClass="processSelect" value="${s}" onchange="showNoShowQuestionaire('${n}','${yes_exp}','${no_exp}',this.value);">
<html:option value="">--</html:option>
<html:option value="N">No</html:option>
<html:option value="Y">Yes</html:option>
</html:select>
</td>
</c:otherwise>
</c:choose>
</tr>
从上面的代码中,我收到了firefox和Chrome的错误消息,它说:elem [i] undefined。它在IE中运行良好。
由于我的应用需要在所有浏览器中运行,是否有适用于所有浏览器的解决方案?
答案 0 :(得分:1)
首先,它们不是复选框,它们是选择元素。那么你可以使用javascript(jquery)。
$('.yesToAll').change(function(){
if ($( "select option:selected" ).text() == 'Y') {
//add attr selected to all other selects Yes options
}
});
答案 1 :(得分:0)
我找到了答案,我使用以下代码来解决问题:
function selectAll2(value) {
var elements = document.forms[1].elements;
for (i=0;i<elements.length;i++) if (elements[i].tagName == 'SELECT') elements[i].value = value;
var count = ${questionCount};
for(var i = 1; i <= count; i++) if(i != 23 || (i==23 && ${w.carrier.stateOfDomicile ne 'FL'})) showNoShowQuestionaire(i,'Y','N',value);
}