【问题标题】:Disable a checkbox in spring and pass the checked value to controller在 spring 中禁用复选框并将选中的值传递给控制器
【发布时间】:2018-06-01 19:00:09
【问题描述】:

您好,我必须禁用 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}" />

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

【问题讨论】:

  • 如果你想让复选框只读,你可以指定readonly而不是disabled
  • 抱歉离开了几天,我试过 readonly="true" 但我仍然可以选中复选框。看起来只有 disabled="true" 适用于复选框:(

标签: java html spring jsp


【解决方案1】:

在 HTML 中有两个含义相似但上下文不同的标签是 Disabled 和 ReadOnly。

  • 禁用:禁用表单中的输入,数据不在表单查询中。
  • 只读:省略用户界面交互,但输入在表单查询中。

尝试使用只读标签,而不是禁用,希望这对你有帮助。

该解决方案适用于除复选框之外的所有输入...复选框不能只读,但你可以做一个小技巧,这是一个肮脏的技巧,但它可以帮助你禁止用户触摸复选框。

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

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

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

【讨论】:

  • 抱歉离开了几天,我试过 readonly="true" 但我仍然可以选中复选框。看起来只有 disabled="true" 适用于复选框:(
  • 我搜索了更多,我找到了一个解决方案,我会重新设计解决方案
  • 是的,谢谢这么多,这似乎对我有用,虽然有点脏,但很好
【解决方案2】:

disabled="true" 改为 readonly= "true" 如果您插入,Disabled 不会发送值,但 readonly 会发送。

【讨论】:

  • 抱歉离开了几天,我试过 readonly="true" 但我仍然可以选中复选框。看起来只有 disabled="true" 适用于复选框:(
  • @SharmisthaSinha 可能将 disabled="true" 更改为 disabled="disabled" 或者只是禁用会起作用
  • No Disabled 不起作用。它不会向服务器发送值。非常感谢您的帮助和时间。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-15
  • 2016-01-31
  • 1970-01-01
  • 1970-01-01
  • 2015-07-07
  • 1970-01-01
  • 2017-09-01
相关资源
最近更新 更多