我希望能够有一个全选复选框或按钮都可以,然后设置所有其他要检查的复选框的值。无论如何在jsp中实现这一点?我在想这样的事情:
<c:if test="${!empty param.selectall}">
//set all others to checked
</c:if>
我知道该条件有效,因为我已经使用过它,但是我该如何设置复选框以在 if 语句中进行检查。
我希望能够有一个全选复选框或按钮都可以,然后设置所有其他要检查的复选框的值。无论如何在jsp中实现这一点?我在想这样的事情:
<c:if test="${!empty param.selectall}">
//set all others to checked
</c:if>
我知道该条件有效,因为我已经使用过它,但是我该如何设置复选框以在 if 语句中进行检查。
似乎您不知何故错过了 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 无论如何都会失败。