HTML单一复选框:最佳实践是否使用值属性

时间:2014-12-30 09:05:15

标签: html servlets checkbox

今天我和我的同事讨论过。问题是是否为单个 HTML复选框使用additonal值属性。

我的优先方式是使用单个复选框,不带附加值属性,并在后端执行检查,如果

if (request.getParameter(checkboxName) != null)) {
...
}

我的同事辩称,使用一个带有的附加复选框值属性的单个复选框会更加透明,例如值=" true"并进行后端检查,如

if (Boolean.valueOf(request.getParameter(checkboxName))) {
...
}

因为我们想制定一个关于我们内部复选框处理的小型约定,现在我试图找到一个"最佳实践"但还无法找到。到目前为止,我只看到了具有相同名称的多个复选框的示例。在这种情况下,我当然有理由使用不同的值。

对于我来说,在单个复选框的情况下使用值属性似乎有点开销,因为我总是得到一个带有" on"的字符串。如果它被激活/检查。

我们正在使用Java Servlet / JSP MVC环境而且我不是100%确定这是否" on"来自ServletRequest.getParameter

2 个答案:

答案 0 :(得分:1)

我看到遵循这两种方法的原因,这意味着它们之间可能没有明显的区别。无论你选择哪一个都会很好;只要确保你选一个。你可以翻硬币或做一个拇指战或其他东西。

只要始终使用单一方法,两者都可行。你的代码较少,不需要布尔转换,另一个html与多个复选框更加一致,但如果你因任何原因放错了值,它也会中断。

为了清楚起见,你总是可以做两件事并在html中插入值,但在代码中检查!= null并获得两个选项的最佳效果。

答案 1 :(得分:1)

只要您没有检查参数是否具有特定的值,服务器端就没有区别。 HTML5 definition只是将长期惯例作为规则建立,因此复选框元素默认值为on。这意味着您的服务器端代码无法区分来自<input type=checkbox name=foo>的数据和来自<input type=checkbox name=foo value=on>的数据。