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 相关文章推荐
一个简单的js渐显(fadeIn)渐隐(fadeOut)类
Jun 19 Javascript
JavaScript类和继承 this属性使用说明
Sep 03 Javascript
jQuery实现仿美橙互联两级导航菜单的方法
Mar 09 Javascript
Javascript中Array用法实例分析
Jun 13 Javascript
详解Python中logging日志模块在多进程环境下的使用
Dec 26 Javascript
vue 打包后的文件部署到express服务器上的方法
Aug 09 Javascript
JavaScript实现的仿新浪微博原生态输入字数即时检查功能【兼容IE6】
Sep 26 Javascript
bootstrap fileinput插件实现预览上传照片功能
Jan 23 Javascript
详解angular应用容器化部署
Aug 14 Javascript
Vue中 v-if/v-show/插值表达式导致闪现的原因及解决办法
Oct 12 Javascript
layui的面包屑或者表单不显示的解决方法
Sep 05 Javascript
原生JavaScript实现日历功能代码实例(无引用Jq)
Sep 23 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
如何使用动态共享对象的模式来安装PHP
2006/10/09 PHP
一个更简单的无限级分类菜单代码
2007/01/16 PHP
PHP通过session id 实现session共享和登录验证的代码
2012/06/03 PHP
php下载文件的代码示例
2012/06/29 PHP
PHP用swoole+websocket和redis实现web一对一聊天
2019/11/05 PHP
tp5框架前台无限极导航菜单类实现方法分析
2020/03/29 PHP
js 单引号 传递方法
2009/06/22 Javascript
js 限制数字 js限制输入实现代码
2012/12/04 Javascript
JQuery实现的购物车功能(可以减少或者添加商品并自动计算价格)
2015/01/13 Javascript
彻底解决 webpack 打包文件体积过大问题
2017/07/07 Javascript
详解JS中的this、apply、call、bind(经典面试题)
2017/09/19 Javascript
在vue项目中利用popstate处理页面返回的操作介绍
2020/08/06 Javascript
Openlayers+EasyUI Tree动态实现图层控制
2020/09/28 Javascript
vue使用video插件vue-video-player详解
2020/10/23 Javascript
Python实现读取并保存文件的类
2017/05/11 Python
Python字典实现简单的三级菜单(实例讲解)
2017/07/31 Python
运动检测ViBe算法python实现代码
2018/01/09 Python
Python实现霍夫圆和椭圆变换代码详解
2018/01/12 Python
Python with用法:自动关闭文件进程
2019/07/10 Python
Python进程Multiprocessing模块原理解析
2020/02/28 Python
HTML5时代CSS设置漂亮字体取代图片
2014/09/04 HTML / CSS
canvas绘制表情包的示例代码
2018/07/09 HTML / CSS
韩国知名的家庭购物网站:CJmall
2016/08/01 全球购物
戴尔荷兰官方网站:Dell荷兰
2020/10/04 全球购物
HashMap和Hashtable的区别
2013/05/18 面试题
thinkphp5 redis缓存新增方法实例讲解
2021/03/24 PHP
机电一体化专业推荐信
2013/12/03 职场文书
销售人员获奖感言
2014/02/05 职场文书
党员志愿者活动方案
2014/08/28 职场文书
群众路线教育实践活动思想汇报(2014特荐篇)
2014/09/16 职场文书
政府个人对照检查材料思想汇报
2014/10/08 职场文书
2015年检察院个人工作总结
2015/05/20 职场文书
写作技巧:如何撰写一份优秀的营销策划书
2019/08/13 职场文书
话题作文之诚信
2019/11/28 职场文书
python实现web邮箱扫描的示例(附源码)
2021/03/30 Python
OpenCV-Python实现油画效果的实例
2021/06/08 Python