在实现项目中修改个人信息的时候,对于个人的ID 和 username 按照我的逻辑是不能修改的
于是就在input标签中加入了disabled使之无法修改
但是按下按钮后,非但数据没有传入后台,反而相应的属性变成了null
- 出问题代码如下
<input type="hidden" name="bookType" value="0">
<p>
<span class="name-icon"> </span>
I D:<input type="text" name="id" disabled="true" value="${user.id}" >
</p>
<p>
<span class="name-icon"> </span>
姓 名:<input type="text" name="username" disabled="true" value="${user.username}" >
</p>
- 修改办法
<input type="hidden" name="bookType" value="0">
<p>
<span class="name-icon"> </span>
I D:<input type="text" name="id" readonly="true" value="${user.id}" >
</p>
<p>
<span class="name-icon"> </span>
姓 名:<input type="text" name="username" readonly="true" value="${user.username}" >
</p>
原因
form 表单中 disabled 属性的元素不参与表单提交
disabled 和 readonly属性的区别
- readonly 是要锁定这个控件,通过在界面上无法修改他(但是通过 javascript 可以修改它)。
- disabled 和 readonly 有相同的地方也是可以锁定这个控件用户不能改变他的值,但是 disabled 的更彻底一些,这是要使控件完全不能使用,彻底失效,包括改变它的背景颜色(不信,你去修改一个被 disabled 掉的 input 文本框,发现这是徒劳的),如果是 checkbox 则不能选中它。
- 所有控件都有 disabled 属性,但是不一定有 readonly 属性,如 select 下拉框。