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 相关文章推荐
5秒后跳转效果(setInterval/SetTimeOut)
May 03 Javascript
JQuery DataTable删除行后的页面更新利用Ajax解决
May 17 Javascript
javascript实现TreeView 无刷新展开的实例代码
Jul 13 Javascript
一个JavaScript用逗号分割字符串实例
Sep 22 Javascript
浅谈Javascript如何实现匀速运动
Dec 19 Javascript
jQuery时间轴插件使用详解
Jul 16 Javascript
javascript数组去重小结
Mar 07 Javascript
JS瀑布流实现方法实例分析
Dec 19 Javascript
webpack构建react多页面应用详解
Sep 15 Javascript
借助云开发实现小程序短信验证码的发送
Jan 06 Javascript
JS数组的常用10种方法详解
May 08 Javascript
vue+element UI实现树形表格
Dec 29 Vue.js
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下的权限算法的实现
2007/04/28 PHP
PHP中对缓冲区的控制实现代码
2013/09/29 PHP
php判断手机访问还是电脑访问示例分享
2014/01/20 PHP
php简单计算年龄的方法(周岁与虚岁)
2016/12/06 PHP
PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
2017/11/14 PHP
一步一步制作jquery插件Tabs实现过程
2010/07/06 Javascript
IE6,IE7下js动态加载图片不显示错误
2010/07/17 Javascript
jquery mobile实现拨打电话功能的几种方法
2013/08/05 Javascript
JavaScript限定复选框的选择个数示例代码
2013/08/25 Javascript
jquery获取复选框被选中的值
2014/04/10 Javascript
window.open()详解及浏览器兼容性问题示例探讨
2014/05/29 Javascript
实用框架(iframe)操作代码
2014/10/23 Javascript
javascript实现checkbox全选的代码
2015/04/30 Javascript
jQuery可见性过滤器:hidden和:visibility用法实例
2015/06/24 Javascript
使用微信内置浏览器点击下拉框出现页面乱跳转现象(iphone),该怎么办
2016/01/04 Javascript
基于javascript html5实现3D翻书特效
2016/03/14 Javascript
利用jQuery实现打字机字幕效果实例代码
2016/09/02 Javascript
JavaScript学习笔记之函数记忆
2017/09/06 Javascript
jQuery中可见性过滤器简单用法示例
2018/03/31 jQuery
在vscode 中设置 vue模板内容的方法
2020/09/02 Javascript
[01:31]DOTA2上海特级锦标赛 SECRET战队完整宣传片
2016/03/16 DOTA
[55:16]Mski vs VGJ.S Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
Django中URLconf和include()的协同工作方法
2015/07/20 Python
使用Python实现BT种子和磁力链接的相互转换
2015/11/09 Python
python使用fork实现守护进程的方法
2017/11/16 Python
Python DataFrame一列拆成多列以及一行拆成多行
2019/08/06 Python
浅析python redis的连接及相关操作
2019/11/07 Python
用Python 执行cmd命令
2020/12/18 Python
Lenox官网:精美的瓷器&独特的礼品
2017/02/12 全球购物
新浪网技术部笔试题
2016/08/26 面试题
招商专员岗位职责
2014/02/08 职场文书
机修工工作职责
2014/02/21 职场文书
人事专员的岗位职责
2014/03/01 职场文书
个人四风对照检查材料
2014/09/26 职场文书
《鲁滨逊漂流记》之六读后感(4篇)
2019/09/29 职场文书
Selenium浏览器自动化如何上传文件
2022/04/06 Python