今天我和我的同事讨论过。问题是是否为单个 HTML复选框使用additonal值属性。
我的优先方式是使用单个复选框,不带附加值属性,并在后端执行检查,如果
if (request.getParameter(checkboxName) != null)) {
...
}
我的同事辩称,使用一个带有的附加复选框值属性的单个复选框会更加透明,例如值=" true"并进行后端检查,如
if (Boolean.valueOf(request.getParameter(checkboxName))) {
...
}
因为我们想制定一个关于我们内部复选框处理的小型约定,现在我试图找到一个"最佳实践"但还无法找到。到目前为止,我只看到了具有相同名称的多个复选框的示例。在这种情况下,我当然有理由使用不同的值。
对于我来说,在单个复选框的情况下使用值属性似乎有点开销,因为我总是得到一个带有" on"的字符串。如果它被激活/检查。
我们正在使用Java Servlet / JSP MVC环境而且我不是100%确定这是否" on"来自ServletRequest.getParameter。
答案 0 :(得分:1)
我看到遵循这两种方法的原因,这意味着它们之间可能没有明显的区别。无论你选择哪一个都会很好;只要确保你选一个。你可以翻硬币或做一个拇指战或其他东西。
只要始终使用单一方法,两者都可行。你的代码较少,不需要布尔转换,另一个html与多个复选框更加一致,但如果你因任何原因放错了值,它也会中断。
为了清楚起见,你总是可以做两件事并在html中插入值,但在代码中检查!= null并获得两个选项的最佳效果。
答案 1 :(得分:1)
只要您没有检查参数是否具有特定的值,服务器端就没有区别。 HTML5 definition只是将长期惯例作为规则建立,因此复选框元素默认值为on
。这意味着您的服务器端代码无法区分来自<input type=checkbox name=foo>
的数据和来自<input type=checkbox name=foo value=on>
的数据。