java句柄已选中和未选中复选框
我这里的情况很混乱
<tr>
<td>
<input type="checkbox" id="box1" name="box1" <% if (renderRequest.getPreferences().getValue("box1", null).equals("on")) { %> checked="checked" <% } %> >
</td>
<td><label>Box</label></td>
</tr>
在portlet中。xml默认情况下,我已将box1值设置为“on”。所以当我加载编辑时。jsp页面我看到的值是选中的。现在,我想处理我感到困惑的未选中复选框的情况。当我取消选中该框时,提交的值为空,我对处理这种情况感到困惑。如果复选框未选中,如何提交默认值
# 1 楼答案
就我所记得的,添加value属性并将其设置为您想要的值应该是可行的。下面添加了
value="on"
# 2 楼答案
使用razor语法:
# 3 楼答案
虽然这个问题是三年前提出来的,但我还是为未来的观众添加了一个答案
如果复选框未选中,则不会发送该复选框。因此devang的答案是,如果未选中,则将其值设置为“on/off”,这不会有帮助-它将始终返回NULL
我找到的最简单的解决方案是添加一个具有相同名称的隐藏字段,如果未选中该复选框,将使用该字段
例如,在您的代码中,解决方案可以是
上面的代码取决于服务器对参数的处理,因为浏览器将发送这两个参数。如果未选中该复选框,则隐藏字段的值将按原样使用(因为浏览器不发送null参数)。但是,如果选中复选框,事情会变得麻烦,因为现在浏览器会看到两个值对应于相同的名称字段
例如,Java只提供具有特定名称的字段的第一个值。另一方面,PHP将最后一个值作为要使用的值
因此,您需要执行一个额外的步骤并调用JavaScript。其思想是根据选中的条件禁用隐藏的输入
这构成了完整的解决方案,与服务器处理无关