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 相关文章推荐
List Information About the Binary Files Used by an Application
Jun 18 Javascript
javascript操作cookie_获取与修改代码
May 21 Javascript
JSON.parse 解析字符串出错的解决方法
Jul 08 Javascript
JavaScript高级程序设计 XML、Ajax 学习笔记
Sep 10 Javascript
jquery通过select列表选择框对表格数据进行过滤示例
May 07 Javascript
微信小程序 数据遍历的实现
Apr 05 Javascript
深入理解Angular4中的依赖注入
Jun 07 Javascript
详解Axios统一错误处理与后置
Sep 26 Javascript
js实现二级联动简单实例
Jan 11 Javascript
js实现上传按钮并显示缩略图小轮子
May 04 Javascript
Vue实现背景更换颜色操作
Jul 17 Javascript
Openlayers实现地图全屏显示
Sep 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
ThinkPHP中数据操作案例分析
2015/09/27 PHP
微信公众号开发之语音消息识别php代码
2016/08/08 PHP
PHP下载远程图片的几种方法总结
2017/04/07 PHP
javascript 回调函数详解
2014/11/11 Javascript
Javascript基础教程之break和continue语句
2015/01/18 Javascript
jQuery图片轮播滚动切换代码分享
2020/04/20 Javascript
javascript实现input file上传图片预览效果
2015/12/31 Javascript
JavaScript ES6中CLASS的使用详解
2016/11/22 Javascript
AngularJS入门教程之路由机制ngRoute实例分析
2016/12/13 Javascript
underscore之function_动力节点Java学院整理
2017/07/11 Javascript
JS/HTML5游戏常用算法之路径搜索算法 A*寻路算法完整实例
2018/12/14 Javascript
vue-cli3跨域配置的简单方法
2019/09/06 Javascript
JavaScript实现Tab选项卡切换
2020/02/13 Javascript
微信小程序实现带放大效果的轮播图
2020/05/26 Javascript
vscode+gulp轻松开发小程序的完整步骤
2020/10/18 Javascript
python二叉树遍历的实现方法
2013/11/21 Python
跟老齐学Python之类的细节
2014/10/13 Python
Python算术运算符实例详解
2017/05/31 Python
对Python中type打开文件的方式介绍
2018/04/28 Python
windows7 32、64位下python爬虫框架scrapy环境的搭建方法
2018/11/29 Python
Python实现的删除重复文件或图片功能示例【去重】
2019/04/23 Python
Python实现简单的列表冒泡排序和反转列表操作示例
2019/07/10 Python
python字典的遍历3种方法详解
2019/08/10 Python
Django User 模块之 AbstractUser 扩展详解
2020/03/11 Python
Python requests接口测试实现代码
2020/09/08 Python
荷兰优雅女装网上商店:Heine
2016/11/14 全球购物
这段代码难道不该打印出56吗
2013/02/27 面试题
高中班长自我鉴定
2013/12/20 职场文书
应届毕业生通用的自荐书范文
2014/02/07 职场文书
中华魂演讲稿
2014/05/13 职场文书
个人借款协议书范本
2014/11/17 职场文书
2014办公室年度工作总结
2014/12/09 职场文书
获奖感言范文
2015/07/31 职场文书
2016年记者节感言
2015/12/08 职场文书
2016年五一劳动节专题校园广播稿
2015/12/17 职场文书
超详细教你怎么升级Mysql的版本
2021/05/19 MySQL