You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将<form:input/>表单字段设置为只读状态

form:input 标签设置只读效果的解决方案

方案1:直接透传HTML原生readonly属性

Spring MVC的<form:input>标签支持直接传递原生HTML属性,直接在标签内声明readonly="true"即可生效,写法示例:

<form:input path="字段名" readonly="true" />

如果需要动态控制只读状态,可以结合EL表达式使用:

<form:input path="字段名" readonly="${是否只读的判断条件}" />

方案2:通过焦点事件模拟只读效果

如果第一种方案在你的Spring版本中不兼容,可以用聚焦自动失焦的方式实现完全一致的只读效果,且表单提交时字段值会正常被传递:

<form:input path="字段名" onfocus="this.blur()" />

方案3:页面加载后通过JS动态添加只读属性

<form:input>渲染后会转换成普通的<input>标签,你可以在页面加载完成后通过JS给对应元素加只读属性,适合批量处理或者运行时动态切换只读状态的场景:

  • 原生JS写法:
    document.querySelector('input[name="对应path的字段名"]').setAttribute('readonly', 'readonly')
  • jQuery写法:
    $('input[name="对应path的字段名"]').attr('readonly', true)

注意:不要使用disabled属性实现只读,disabled属性会导致字段值在表单提交时不会被后端接收,和readonly的逻辑有本质区别。

内容的提问来源于stack exchange,提问作者lakshman Kommula

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 08:24:04