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的MessageBox
Dec 03 Javascript
innerHTML,outerHTML,innerTEXT三者之间的区别
Jan 28 Javascript
解读JavaScript代码 var ie = !-[1,] 最短的IE判定代码
May 28 Javascript
jQuery数据缓存功能的实现思路及简单模拟
May 27 Javascript
js 使FORM表单的所有元素不可编辑的示例代码
Oct 17 Javascript
JS模仿编辑器实时改变文本框宽度和高度大小的方法
Aug 17 Javascript
JavaScript高级教程5.6之基本包装类型(详细)
Nov 23 Javascript
Angular2  NgModule 模块详解
Oct 19 Javascript
基于ajax与msmq技术的消息推送功能实现代码
Dec 26 Javascript
关于vuex的学习实践笔记
Apr 05 Javascript
分析javascript中9 个常见错误阻碍你进步
Sep 18 Javascript
JS校验与最终登陆界面功能完整示例
Jan 13 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数组实际占用内存大小原理解析
2020/12/11 PHP
js每次Title显示不同的名言
2008/09/25 Javascript
jQuery学习笔记 更改jQuery对象
2012/09/19 Javascript
NODE.JS加密模块CRYPTO常用方法介绍
2014/06/05 Javascript
网站接入QQ登录的两种方法
2014/07/22 Javascript
JS实现点击颜色块切换指定区域背景颜色的方法
2015/02/25 Javascript
JavaScript学习笔记整理_简单实现枚举类型,扑克牌应用
2016/09/19 Javascript
JQuery.validationEngine表单验证插件(推荐)
2016/12/10 Javascript
微信小程序 input输入框控件详解及实例(多种示例)
2016/12/14 Javascript
NodeJS实现客户端js加密
2017/01/09 NodeJs
Bootstrap入门教程一Hello Bootstrap初识
2017/03/02 Javascript
vue.js提交按钮时进行简单的if判断表达式详解
2018/08/08 Javascript
使用Node.js写一个代码生成器的方法步骤
2019/05/10 Javascript
javascript中的with语句学习笔记及用法
2020/02/17 Javascript
react 生命周期实例分析
2020/05/18 Javascript
[36:16]完美世界DOTA2联赛PWL S3 access vs Rebirth 第一场 12.19
2020/12/24 DOTA
Python中的ConfigParser模块使用详解
2015/05/04 Python
八大排序算法的Python实现
2021/01/28 Python
利用Python批量生成任意尺寸的图片
2016/08/29 Python
VTK与Python实现机械臂三维模型可视化详解
2017/12/13 Python
python指定写入文件时的编码格式方法
2018/06/07 Python
python爬虫中url管理器去重操作实例
2020/11/30 Python
python实现跨年表白神器--你值得拥有
2021/01/04 Python
CSS3 Flexbox中flex-shrink属性的用法示例介绍
2013/12/30 HTML / CSS
伦敦剧院及景点门票:Encore Tickets
2018/07/01 全球购物
会计毕业生求职简历的自我评价
2013/10/20 职场文书
个人简历的自荐信
2013/10/23 职场文书
违反学校规定检讨书
2014/01/18 职场文书
大学生村官事迹材料
2014/01/21 职场文书
彩色的翅膀教学反思
2014/04/25 职场文书
党员倡议书
2015/01/19 职场文书
材料采购员岗位职责
2015/04/03 职场文书
学校教师师德师风承诺书
2015/04/28 职场文书
项目验收申请报告
2015/05/15 职场文书
新闻简讯格式及范文
2015/07/22 职场文书
python控制台打印log输出重复的解决方法
2021/05/14 Python