JSTL中的复选框值



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

 <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脚本代码可以完美地工作。

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

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

您有几个复选框,并为每个复选框分配了相同的ID,这使您的HTML代码无效。由于您想获取所有检查复选框的值,因此需要迭代它们。要找到它们,您可以使用他们的名字,因为它们都共享相同的名称。在每次迭代中,您将确定是否检查了当前的复选框,获取其值属性,然后将其添加到数组中。然后,您可以将此数组传递到您的父窗口。

最新更新