js动态修改input输入框的type属性(实现方法解析) |
本文标签:js,input,type 需要实现的效果:一个输入框,当输入框未获得焦点的时候,value 值为 “密码”;当输入框失去焦点的时候,输入内容显示为”*****” <input name=”password” type=”text” id=”showPwd” tabindex=”2″ class=”input” value=”密码” /> 我们很直接会想到下面的js $(“#showPwd”).focus(function(){ 发现并没有实现预期效果,出现 uncaught exception type property cant be changed 错误,查看jQuery 1.42源码 1488 行 // We cant allow the type property to be changed (since it causes problems in IE) jQuery 修改不了用源生的JS呢? $(“#pwd”).focus(function(){ 发现在FF下可以修改并将密码输入框type 修改为 “password” 并将 value设置为空,而IE下却提示无法得到type属性,不支持该命令 。 弹出 type 看看真的无法得到吗? $(“#showPwd”).focus(function(){ 发现弹出text ,原来不是无法得到,只是IE下不能修改 。 因此,我们想到可以先remove然后再生成一个type是password的密码输入框 。 下面type为password的输入框 <input name=”password” type=”password” id=”password” class=”input” style=”display: none;” /> $(“#showPwd”).focus(function() { 最终效果: 当输入框获得焦点的时,输入的内容显示为“****”;当失去焦点的时,内容为空时显示“密码” 。 |