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 相关文章推荐
动态表格Table类的实现
Aug 26 Javascript
目前流行的JavaScript库的介绍及对比
Sep 29 Javascript
JavaScript 32位整型无符号操作示例
Dec 08 Javascript
Jquery实现自定义弹窗示例
Mar 12 Javascript
Bootstrap每天必学之进度条
Nov 30 Javascript
浅析JavaScript中的对象类型Object
May 26 Javascript
js 能实现监听F5页面刷新子iframe 而父页面不刷新的方法
Nov 09 Javascript
Bootstrap CSS组件之按钮下拉菜单
Dec 17 Javascript
vue 左滑删除功能的示例代码
Jan 28 Javascript
微信小程序动态评分展示/五角星展示/半颗星展示/自定义长度展示功能的实现
Jul 22 Javascript
逐行分析鸿蒙系统的 JavaScript 框架(推荐)
Sep 17 Javascript
JS创建或填充任意长度数组的小技巧汇总
Oct 24 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
DW中链接mysql数据库时,建立字符集中文出现乱码的解决方法
2010/03/27 PHP
简单解析PHP程序的运行流程
2016/06/23 PHP
thinkPHP3.2.3实现阿里大于短信验证的方法
2018/06/06 PHP
用javascript获取当页面上鼠标光标位置和触发事件的对象的代码
2009/12/09 Javascript
超简单的jquery的AJAX用法
2010/05/10 Javascript
jquery得到font-size属性值实现代码
2013/09/30 Javascript
Jquery通过Ajax方式来提交Form表单的具体实现
2013/11/07 Javascript
JSP中使用JavaScript动态插入删除输入框实现代码
2014/06/13 Javascript
Javascript中this关键字的一些小知识
2015/03/15 Javascript
JavaScript小技巧整理
2015/12/30 Javascript
vue,angular,avalon这三种MVVM框架优缺点
2016/04/27 Javascript
js简单时间比较的方法
2016/08/02 Javascript
AngularJs directive详解及示例代码
2016/09/01 Javascript
vue按需加载组件webpack require.ensure的方法
2017/12/13 Javascript
JavaScript实现图片伪异步上传过程解析
2020/04/10 Javascript
Python实现从脚本里运行scrapy的方法
2015/04/07 Python
Python cookbook(数据结构与算法)从任意长度的可迭代对象中分解元素操作示例
2018/02/13 Python
python学生管理系统代码实现
2020/04/05 Python
python中多个装饰器的执行顺序详解
2018/10/08 Python
使用python批量读取word文档并整理关键信息到excel表格的实例
2018/11/07 Python
Python列表删除元素del、pop()和remove()的区别小结
2019/09/11 Python
python打印n位数“水仙花数”(实例代码)
2019/12/25 Python
python使用协程实现并发操作的方法详解
2019/12/27 Python
Django实现将一个字典传到前端显示出来
2020/04/03 Python
Python如何在循环内使用list.remove()
2020/06/01 Python
浅谈python opencv对图像颜色通道进行加减操作溢出
2020/06/03 Python
西尔斯百货官网:Sears
2016/09/06 全球购物
波兰最大的儿童服装连锁店之一:5.10.15.
2018/02/11 全球购物
简历中个人自我评价范文
2013/12/26 职场文书
学生生病请假条范文
2014/02/16 职场文书
小学毕业演讲稿
2014/04/25 职场文书
施工安全标语
2014/06/07 职场文书
中学生旷课检讨书模板
2014/10/08 职场文书
《社戏》教学反思
2016/02/22 职场文书
如何开发一个渐进式Web应用程序PWA
2021/05/10 Javascript
为了顺利买到演唱会的票用Python制作了自动抢票的脚本
2021/10/16 Python