"js动态修改input输入框的type属性实现详解" 在JavaScript中,input元素的type属性用于定义输入框的类型,如text、password、email等。然而,动态修改input元素的type属性并非所有浏览器都支持,尤其是涉及到将type从非password变为password的情况。在某些浏览器(如IE)中,尝试直接更改type属性可能会导致错误,因为浏览器出于安全考虑限制了这种操作。 在给定的描述中,开发者试图实现一个输入框,当输入框未获取焦点时,显示的value值为“密码”,而当输入框失去焦点时,输入的内容应被隐藏,显示为星号(*****)。这种效果常见于密码输入框,通常通过切换input的type属性来实现。 首先,尝试使用jQuery的`.attr()`方法来修改type属性: ```javascript $("#showPwd").focus(function() { $(this).attr('type', 'password'); }); ``` 但这种方法在某些情况下可能无效,因为jQuery内部有防止修改type属性的机制,以防引发问题(尤其是在旧版本的IE中)。 接着,尝试使用原生JavaScript: ```javascript $("#showPwd").focus(function() { $("#showPwd")[0].type = 'password'; $("#showPwd").val(""); }); ``` 这个方法在Firefox中可以工作,但在Internet Explorer下则会报错,表明无法更改type属性。这是因为IE不允许直接修改已存在的input元素的type属性。 为了解决这个问题,可以采用以下策略:先移除原有的input元素,然后创建一个新的type为password的input元素,并将其插入到DOM中: ```javascript $("#showPwd").focus(function() { var input = $(this)[0]; var value = input.value; $(input).replaceWith('<input name="password" type="password" id="showPwd" tabindex="2" class="input" value="' + value + '" />'); }); ``` 这样,当input元素获得焦点时,它会被一个新的password类型的input元素替换,从而达到预期的效果。请注意,这种方法可能会影响表单数据的提交,因为新的input元素将替换原来的元素,所以可能需要额外处理来确保数据的正确性。 虽然动态修改input的type属性在某些浏览器中存在限制,但通过合理的方法,如先移除再创建新元素,可以绕过这些限制并实现所需的功能。在编写兼容性良好的代码时,理解不同浏览器的差异和限制至关重要。
![](https://csdnimg.cn/release/download_crawler_static/13054848/bg1.jpg)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
- 粉丝: 3
- 资源: 945
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- 利用迪杰斯特拉算法的全国交通咨询系统设计与实现
- 全国交通咨询系统C++实现源码解析
- DFT与FFT应用:信号频谱分析实验
- MATLAB图论算法实现:最小费用最大流
- MATLAB常用命令完全指南
- 共创智慧灯杆数据运营公司——抢占5G市场
- 中山农情统计分析系统项目实施与管理策略
- XX省中小学智慧校园建设实施方案
- 中山农情统计分析系统项目实施方案
- MATLAB函数详解:从Text到Size的实用指南
- 考虑速度与加速度限制的工业机器人轨迹规划与实时补偿算法
- Matlab进行统计回归分析:从单因素到双因素方差分析
- 智慧灯杆数据运营公司策划书:抢占5G市场,打造智慧城市新载体
- Photoshop基础与色彩知识:信息时代的PS认证考试全攻略
- Photoshop技能测试:核心概念与操作
- Photoshop试题与答案详解
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)