0

我希望能够有一个全选复选框或按钮都可以,然后设置所有其他要检查的复选框的值。无论如何在jsp中实现这一点?我在想这样的事情:

<c:if test="${!empty param.selectall}">
    //set all others to checked
</c:if>

我知道该条件有效,因为我已经使用过它,但是我该如何设置复选框以在 if 语句中进行检查。

4

1 回答 1

2

似乎您不知何故错过了 JSP 仅仅是一个 HTML 代码生成器这一事实。

在 HTML 中,选中的复选框由checked属性的存在表示。

<input type="checkbox" ... checked="checked" />

在 JSP 中您需要做的就是它准确地生成所需的 HTML 输出。

<c:if test="${not empty param.selectall}">
    <input type="checkbox" ... checked="checked" />
    <input type="checkbox" ... checked="checked" />
    <input type="checkbox" ... checked="checked" />
    ...
</c:if>

或者,如果您不想为选中和未选中状态复制整个 HTML,而只想生成所需的属性:

<input type="checkbox" ... ${not empty param.selectall ? 'checked="checked"' : ''} />
<input type="checkbox" ... ${not empty param.selectall ? 'checked="checked"' : ''} />
<input type="checkbox" ... ${not empty param.selectall ? 'checked="checked"' : ''} />
...

或者,如果您实际上在某个集合中拥有可以迭代使用的值,<c:forEach>并且您不想为每个值复制所有 HTML 输入元素,那么请执行以下操作:

<c:forEach items="${bean.availableItems}" var="availableItem">
    <input type="checkbox" ... value="${availableItem}" ${not empty param.selectall ? 'checked="checked"' : ''} />
</c:forEach>

当最终用户禁用 JS 时,不需要笨拙的 JS hacks/workarounds 无论如何都会失败。

于 2013-09-30T13:40:16.013 回答