js动态修改input输入框的type属性(实现方法解析)


Posted in Javascript onNovember 13, 2013

需要实现的效果:一个输入框,当输入框未获得焦点的时候,value 值为 “密码”;当输入框失去焦点的时候,输入内容显示为”*****”

<input name=”password” type=”text” id=”showPwd” tabindex=”2″ class=”input” value=”密码” />

我们很直接会想到下面的js

$(“#showPwd”).focus(function(){
$(this).attr(‘type','password');
});

发现并没有实现预期效果,出现 uncaught exception type property can't be changed 错误,查看jQuery 1.42源码 1488 行

// We can't allow the type property to be changed (since it causes problems in IE)
if ( name === “type” && rtype.test( elem.nodeName ) && elem.parentNode ) {
jQuery.error( “type property can't be changed” );
}

jQuery 修改不了用源生的JS呢?

$(“#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的输入框

<input name=”password” type=”password” id=”password” class=”input” style=”display: none;” />

$(“#showPwd”).focus(function() {
var text_value = $(this).val();
if (text_value == this.defaultValue) {
$(“#showPwd”).hide();
$(“#password”).show().focus();
}
});
$(“#password”).blur(function() {
var text_value = $(this).val();
if (text_value == “”) {
$(“#showPwd”).show();
$(“#password”).hide();
}
});

最终效果: 当输入框获得焦点的时,输入的内容显示为“****”;当失去焦点的时,内容为空时显示“密码”。

Javascript 相关文章推荐
ANGULARJS中用NG-BIND指令实现单向绑定的例子
Dec 08 Javascript
AngularJs实现ng1.3+表单验证
Dec 10 Javascript
js添加事件的通用方法推荐
May 15 Javascript
angular.js之路由的选择方法
Sep 24 Javascript
js实现百度地图定位于地址逆解析,显示自己当前的地理位置
Dec 08 Javascript
jquery实现刷新随机变化样式特效(tag标签样式)
Feb 03 Javascript
bootstrap table操作技巧分享
Feb 15 Javascript
Jquery获取radio选中的值
May 05 jQuery
javascript将list转换成树状结构的实例
Sep 08 Javascript
React Native时间转换格式工具类分享
Oct 24 Javascript
使用Angular CLI快速创建Angular项目的一些基本概念和写法小结
Apr 22 Javascript
微信小程序学习笔记之跳转页面、传递参数获得数据操作图文详解
Mar 28 Javascript
js字母大小写转换实现方法总结
Nov 13 #Javascript
jQuery替换字符串(实例代码)
Nov 13 #Javascript
js 将json字符串转换为json对象的方法解析
Nov 13 #Javascript
JS 实现BASE64_ENCODE和BASE64_DECODE(实例代码)
Nov 13 #Javascript
JavaScript实现url地址自动检测并添加URL链接示例代码
Nov 12 #Javascript
JavaScript改变HTML元素的样式改变CSS及元素属性
Nov 12 #Javascript
屏蔽script注入小例子
Nov 12 #Javascript
You might like
使用JSON实现数据的跨域传输的php代码
2011/12/20 PHP
thinkPHP使用pclzip打包备份mysql数据库的方法
2016/04/30 PHP
ThinkPHP和UCenter接口冲突的解决方法
2016/07/25 PHP
Opacity.js
2007/01/22 Javascript
js控制框架刷新
2008/08/01 Javascript
JavaScript 代码压缩工具小结
2012/02/27 Javascript
javascript 进阶篇3 Ajax 、JSON、 Prototype介绍
2012/03/14 Javascript
JS 实现BASE64_ENCODE和BASE64_DECODE(实例代码)
2013/11/13 Javascript
通过JS动态创建一个html DOM元素并显示
2014/10/15 Javascript
jQuery中size()方法用法实例
2014/12/27 Javascript
javascript转换静态图片,增加粒子动画效果
2015/05/28 Javascript
JavaScript通过使用onerror设置默认图像显示代替alt
2016/03/01 Javascript
浅谈jQuery 选择器和dom操作
2016/06/07 Javascript
快速入门Vue
2016/12/19 Javascript
Vue中引入样式文件的方法
2017/08/18 Javascript
详解使用mpvue开发github小程序总结
2018/07/25 Javascript
js中的闭包实例展示
2018/11/01 Javascript
在Create React App中使用CSS Modules的方法示例
2019/01/15 Javascript
TypeScript中的方法重载详解
2019/04/12 Javascript
浅析webpack-bundle-analyzer在vue-cli3中的使用
2019/10/23 Javascript
前端如何实现动画过渡效果
2021/02/05 Javascript
python实现问号表达式(?)的方法
2013/11/27 Python
特征脸(Eigenface)理论基础之PCA主成分分析法
2018/03/13 Python
django初始化数据库的实例
2018/05/27 Python
在unittest中使用 logging 模块记录测试数据的方法
2018/11/30 Python
python utc datetime转换为时间戳的方法
2019/01/15 Python
Python实现的爬取百度文库功能示例
2019/02/16 Python
python控制nao机器人身体动作实例详解
2019/04/29 Python
基于Tensorflow使用CPU而不用GPU问题的解决
2020/02/07 Python
Python3.7将普通图片(png)转换为SVG图片格式(网站logo图标)动起来
2020/04/21 Python
纯CSS3发光分享按钮的实现教程
2014/09/06 HTML / CSS
Web Service面试题:如何搭建Axis2的开发环境
2012/06/20 面试题
初三新学期计划书
2014/05/03 职场文书
三好学生个人先进事迹材料
2014/05/17 职场文书
刑事辩护授权委托书
2014/09/13 职场文书
深入浅析React中diff算法
2021/05/19 Javascript