禁用弹簧中的复选框并将选中的值传递给控制器

时间:2018-05-28 08:17:43

标签: java html spring jsp

您好我必须在spring html表单中禁用复选框并将选中的值传递给控制器​​。我使用下面的代码,但问题是当disabled属性设置为true时,我无法将检查的值传递给控制器​​

<form:checkbox path="agreementCats" disabled="true" value="${x.value}" class="category-checkboxes" id="agreementCat-cb-${i.index}" /><label class="control-label" for="agreementCat-cb-${i.index}">&nbsp;${x.label}</label>
<form:hidden path="agreementCats" value="${x.value}" />

上面的代码将所有值发送到控制器。请帮忙!!

2 个答案:

答案 0 :(得分:2)

而不是disabled="true"将其更改为readonly= "true" 如果您插入但是只读,则禁用不发送值。

答案 1 :(得分:2)

HTML中的

有两个具有相似含义的标记,但不同的上下文是Disabled和ReadOnly。

  • 已停用:已停用表单中的输入,且数据不在表单查询中。
  • readonly :省略用户界面互动,但输入处于表单查询状态。

尝试使用readonly标签禁用,我希望这可以帮到你。

该解决方案适用于除复选框以外的所有输入 ...复选框无法使用只读,但您可以做一个小技巧,这是一个污点,但它可以帮助你允许用户触摸复选框。

如果您在服务器端知道可以编辑哪个复选框,请尝试以下代码:

<input type="checkbox" <c:if test="condition">onclick="return false;"</c:if> ></input>

如果条件为真,那么代码不允许用户单击复选框。也许这可以解决你的问题。