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中的屏蔽的使用示例
Jul 30 Javascript
jquery删除指定的html标签并保留标签内文本内容的方法
Apr 02 Javascript
一个php+js实时显示时间问题
Oct 12 Javascript
layer实现弹窗提交信息
Dec 12 Javascript
详解webpack 多入口配置
Jun 16 Javascript
JS鼠标滚动分页效果示例
Jul 05 Javascript
webpack实现热更新(实施同步刷新)
Jul 28 Javascript
jQuery实现列表的增加和删除功能
Jun 14 jQuery
react-native聊天室|RN版聊天App仿微信实例|RN仿微信界面
Nov 12 Javascript
JS如何实现手机端输入验证码效果
May 13 Javascript
JavaScript数组排序的六种常见算法总结
Aug 18 Javascript
浅析JavaScript预编译和暗示全局变量
Sep 03 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转换IP地址到真实地址的方法详解
2013/06/09 PHP
php中用socket模拟http中post或者get提交数据的示例代码
2013/08/08 PHP
PHP中Header使用的HTTP协议及常用方法小结
2014/11/04 PHP
PHP中文乱码解决方案
2015/03/05 PHP
Yii安装与使用Excel扩展的方法
2016/07/13 PHP
PHP数据库编程之MySQL优化策略概述
2017/08/16 PHP
$.ajax json数据传递方法
2008/11/19 Javascript
JavaScript 脚本将当地时间转换成其它时区
2009/03/19 Javascript
Js切换功能的简单方法
2010/11/23 Javascript
浅谈JSON和JSONP区别及jQuery的ajax jsonp的使用
2014/11/23 Javascript
javascript上下方向键控制表格行选中并高亮显示的方法
2015/02/13 Javascript
JavaScript使用ActiveXObject访问Access和SQL Server数据库
2015/04/02 Javascript
jQuery遮罩层实现方法实例详解(附遮罩层插件)
2015/12/08 Javascript
javascript 四十条常用技巧大全
2016/09/09 Javascript
详解如何在vue项目中使用lodop打印插件
2018/09/27 Javascript
angular4自定义表单控件[(ngModel)]的实现
2018/11/23 Javascript
[00:36]DOTA2风云人物相约完美“圣”典 12月17日不见不散
2016/11/30 DOTA
numpy添加新的维度:newaxis的方法
2018/08/02 Python
浅析Windows 嵌入python解释器的过程
2019/07/26 Python
Python字符串函数strip()原理及用法详解
2020/07/23 Python
Python 利用flask搭建一个共享服务器的步骤
2020/12/05 Python
HTML5安全介绍之内容安全策略(CSP)简介
2012/07/10 HTML / CSS
使用html5实现表格实现标题合并的实例代码
2019/05/13 HTML / CSS
为世界各地的女性设计和生产时尚服装:ROMWE
2016/09/17 全球购物
英国探险旅游专家:Explore
2018/12/20 全球购物
酒店管理求职信范文
2014/04/06 职场文书
《陈毅探母》教学反思
2014/05/01 职场文书
有关九一八事变的演讲稿
2014/09/14 职场文书
机修车间主任岗位职责
2015/04/08 职场文书
2015年世界急救日宣传活动方案
2015/05/06 职场文书
2015年英语教师工作总结
2015/05/20 职场文书
2015年计算机教师工作总结
2015/07/22 职场文书
校友会致辞
2015/07/30 职场文书
pytorch fine-tune 预训练的模型操作
2021/06/03 Python
Python实战之大鱼吃小鱼游戏的实现
2022/04/01 Python
ubuntu开机后ROS程序自启动问题
2022/12/24 Servers