如何在html中选择All all复选框?

时间:2014-11-05 21:50:13

标签: javascript html checkbox selectall

我有一个html表单,其中有很多复选框,顶部有一个Select All框,如何根据Select All框选择自动选择下面的所有复选框?

enter image description here

我不想显示代码,因为它看起来很讨厌,我正在调试一个旧的应用程序,但是既然你问过,这里是:

<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}.&nbsp;&nbsp;
        </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中运行良好。

由于我的应用需要在所有浏览器中运行,是否有适用于所有浏览器的解决方案?

2 个答案:

答案 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);
}