jstl中的CheckBox值

时间:2014-01-26 02:03:19

标签: jsp jstl java-ee-7

我正在尝试从弹出窗口收集复选框值,并使用以下代码将其值传递给父窗口:

 <c:forEach var="row" items="${result2.rows}">
        <input type="checkbox" name="chkBox" id="cb1" value="${row.first_name} ${row.last_name}" />
        <c:out value="${row.first_name} ${row.last_name}"/><br>
    </c:forEach>
<input type="button" value="select"  onclick="javascript:return returnValues()" />

这个jstl代码运行良好,即使结果包含很多行,也会显示复选框和名称。

选择复选框后,我通过这个java脚本代码将它们的值传递给父窗口:

  function returnValues() {
            if(document.getElementById("cb1").checked){
                var v1 =[];
                v1 =document.getElementById("cb1").value
            }            
            window.opener.setValue(v1);
            window.close();
            return false;
        }

当返回的结果只包含一行时,此java脚本代码可以正常工作,否则会失败。

我试着改写我的问题,并希望我比以前更好地解释它。 任何帮助将不胜感激,提前谢谢。

1 个答案:

答案 0 :(得分:0)

JS代码没有多大意义。 getElementById()返回0或1个DOM元素:具有作为参数传递的ID的元素,并且该元素在整个文档中应该是唯一的。

您有几个复选框,并为每个复选框分配了相同的ID,这使您的HTML代码无效。由于您希望获取所有已选中复选框的值,因此需要对它们进行迭代。要找到它们,您可以use their name,因为它们都共享同一个。 在每次迭代中,您将确定是否选中了当前复选框,获取其value属性,并将其添加到数组中。然后,您可以将此数组传递给父窗口。