js动态修改input输入框的type属性(实现方法解析)
需要实现的效果:一个输入框,当输入框未获得焦点的时候,value值为“密码”;当输入框失去焦点的时候,输入内容显示为”*****”
<inputname=”password”type=”text”id=”showPwd”tabindex=”2″class=”input”value=”密码”/>
我们很直接会想到下面的js
$(“#showPwd”).focus(function(){
$(this).attr(‘type","password");
});
//Wecan"tallowthetypepropertytobechanged(sinceitcausesproblemsinIE)
if(name===“type”&&rtype.test(elem.nodeName)&&elem.parentNode){
jQuery.error(“typepropertycan"tbechanged”);
}
$(“#pwd”).focus(function(){
$(“#pwd”)[0].type=‘password";
$(“#pwd”).val(“”);
});
发现在FF下可以修改并将密码输入框type修改为“password”并将value设置为空,而IE下却提示无法得到type属性,不支持该命令。弹出type看看真的无法得到吗?
$(“#showPwd”).focus(function(){
alert($(“#showPwd”)[0].type);
$(“#showPwd”)[0].type=‘password";
$(“#showPwd”).val(“”);
});
发现弹出text,原来不是无法得到,只是IE下不能修改。因此,我们想到可以先remove然后再生成一个type是password的密码输入框。
下面type为password的输入框
<inputname=”password”type=”password”id=”password”class=”input”style=”display:none;”/>
$(“#showPwd”).focus(function(){
vartext_value=$(this).val();
if(text_value==this.defaultValue){
$(“#showPwd”).hide();
$(“#password”).show().focus();
}
});
$(“#password”).blur(function(){
vartext_value=$(this).val();
if(text_value==“”){
$(“#showPwd”).show();
$(“#password”).hide();
}
});
最终效果:当输入框获得焦点的时,输入的内容显示为“****”;当失去焦点的时,内容为空时显示“密码”。
相关文章
- html如何只刷新页面指定,js控制页面刷新 JS刷新当前页面的几种方法总结
- JS改变this指向的三种方法 (转载非原创)
- JS跳转代码_javascript跳转代码
- Vue04路由--SPA+ 使用路由建立多视图单页应用+router-link相关属性+【面试题:js中const,var,let区别】
- js 对象属性过滤方法
- js中settimeout()的用法详解_js中setattribute
- 在 Vue.js 中通过计算属性动态设置属性值
- Js如何修改元素的属性值
- js 数组去除重复数据-5 个提升你 JS 编码水平的实例
- Js如何利用prototype为类创建静态成员属性和方法
- js下用层来实现select的title提示属性
- CSS和JS标签style属性对照表(方便js开发的朋友)
- 使用js正则控制input标签只允许输入的值
- js调用css属性写法
- 使用js解决由border属性引起的div宽度问题
- JS操作Array数组的方法及属性实例解析
- JS获取网页属性包括宽、高等等
- 教你如何使用node.js制作代理服务器