一般我们做登录注册的时候都会提供一个让用户选择自己输入的密码是否显示的需求,

这种需求我们肯定会想到只要动态改变input的type属性不就好了(text显示/password隐藏):

于是我用了jQuery的attr()这个方法。

代码如下:

$(input).attr("type","password");

然而结果并不是我想的那样,出错了!

浏览器报错信息为:“Uncaught Error: type property can't be changed”!

大概意思是input的type类型属性不能改变。

。。。。。。查阅各种质料也看到各种解决方法,大体上都是如下这种的写法:

<input id="showPwd" class="txt" type="text" value="密码" tabindex="2" />  
<input id="pwd" class="txt" name="password" type="password" /> 
var showPwd = $("#showPwd"), pwd = $("#pwd");  
showPwd.focus(function(){  
   pwd.show().focus();  
   showPwd.hide();  
});  
  
pwd.blur(function(){  
   if(pwd.val()=="") {  
       showPwd.show();  
       pwd.hide();  
    }  
});  

简单来说就是用两个input来回切换着显示,互相获取对方输入的字符!
这种办法我试了一手,可以实现,而且代码也不是很多。但是我总觉得怪怪的,这种需求应该这么实现?肯定不可能啊
本人认为这个功能不应该那样麻烦。为了追求真理,本人不懈努力。。。。

然后。。。。

$(input).prop("type","password");//简单粗暴的实现了

感谢谢阅读!再见

posted on 2017-09-05 11:44  Kingchan  阅读(686)  评论(0编辑  收藏  举报