input 的disabled 和readonly

本文探讨了在数据库更新操作中使用disabled属性阻止主键修改的现象,并对比了disabled与readonly的区别:前者完全禁止交互,后者仅使字段变为只读状态。

今天做了一个小东西,在update数据的时候想让数据库的主键无法被更改,所以就想到了disabled属性。那就使用呗,二话不说disable就写上去了,上了之后就是无法更新数据,编辑器也不报错,太可拍了。。。最后发现主键就是无法获得。

查了点资料知道原来disable和readonly是有那么点区别的。

disable是无法完成交互的,而readolly就可以,只读嘛,从名字就能看出来。

<think>我们正在讨论HTML中input标签的readonly属性。根据引用内容,readonly属性用于设置输入框为只读状态,用户无法修改其中的内容。 引用[4]给出了一个简单的例子:<input type="text" value="只读状态" readonly="readonly" /> 引用[3]展示了如何使用JavaScript动态添加readonly属性:document.getElementById('Input').readOnly = true; 我将从以下几个方面来介绍readonly属性: 1. 使用方法(静态设置动态设置) 2. 效果(用户界面表现) 3. 注意事项(与disabled属性的区别、表单提交等) 然后,根据要求生成相关问题。 </think> ### HTML中input标签的readonly属性详解 #### 一、基本概念与效果 `readonly`属性用于将输入字段设置为**只读状态**,用户可以看到输入框内容但无法修改: ```html <!-- 基础用法 --> <input type="text" value="初始内容" readonly> ``` **效果表现**: - ✅ 文本可见但不可编辑 - ✅ 支持键盘Tab键切换焦点 - ✅ 表单提交时会包含该字段的值(与`disabled`关键区别) - ❌ 无法通过用户交互修改内容 #### 二、使用方法 1. **静态设置**(HTML直接声明): ```html <input type="text" value="固定值" readonly> <input type="email" readonly="readonly"> <!-- XHTML风格 --> ``` 2. **动态设置**(JavaScript操作): ```javascript // 添加只读属性 document.getElementById('myInput').readOnly = true; // 移除只读属性 document.querySelector('input').removeAttribute('readonly'); ``` 3. **框架示例**(Vue.js): ```html <input :readonly="isLocked"> <!-- 根据isLocked变量动态切换 --> ``` #### 三、注意事项 1. **与`disabled`的区别**: | 特性 | `readonly` | `disabled` | |--------------|--------------------|--------------------| | 值是否可修改 | 否 | 否 | | 值是否提交 | 是 | 否 | | 焦点可获取 | 是 | 否 | | 视觉样式 | 正常(可自定义) | 默认灰色 | 2. **特殊类型支持**: - ✅ 支持:`text`, `password`, `email`, `number`, `date`等文本类输入 - ❌ 不支持:`checkbox`, `radio`, `button`(无意义) 3. **样式自定义**: ```css input[readonly] { background-color: #f0f0f0; border: 1px dashed #999; } ``` #### 四、实际应用场景 1. 显示数据库ID等不可修改的关键数据 2. 预填充表单的计算结果(如价格总计) 3. 分步表单中展示上一步已确认的信息 4. 配合JavaScript实现条件锁定逻辑[^3][^4] #### 五、常见问题解决 - **问题**:移动端键盘仍弹出? **方案**:添加`onfocus="this.blur()"`阻止焦点 - **问题**:需要临时解锁? **方案**:通过JavaScript动态移除属性: ```javascript document.getElementById('tempInput').readOnly = false; ``` > 关键提示:若需完全阻止用户交互(包括选择文本),需结合`disabled`属性使用,但要注意表单提交时该字段会被忽略[^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值