我希望能够选中所有复选框或按钮,这样就可以设置要检查的所有其他复选框的值。无论如何在jsp中实现这一点?我在考虑这样的事情:
<c:if test="${!empty param.selectall}">
//set all others to checked
</c:if>
我知道条件有效,因为我已经使用过了,但我如何设置一个复选框来检查if语句。
答案 0 :(得分: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黑客攻击/解决方法,无论如何都会失败。