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 相关文章推荐
jQuery中将函数赋值给变量的调用方法
Mar 23 Javascript
浅谈Javascript事件处理程序的几种方式
Jun 27 Javascript
Javascript this 的一些学习总结
Aug 31 Javascript
Jquery动态添加及删除页面节点元素示例代码
Jun 16 Javascript
js中window.open打开一个新的页面
Aug 10 Javascript
浅析javascript的return语句
Dec 15 Javascript
jQuery实现的鼠标滑过弹出放大图片特效
Jan 08 Javascript
JS组件Bootstrap ContextMenu右键菜单使用方法
Apr 17 Javascript
jQuery事件绑定用法详解
Sep 08 Javascript
jquery表单插件form使用方法详解
Jan 20 Javascript
在vue-cli项目中使用bootstrap的方法示例
Apr 21 Javascript
vue和webpack项目构建过程常用的npm命令详解
Jun 15 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获取数组最大值下标的方法
2015/05/12 PHP
PHP设置头信息及取得返回头信息的方法
2016/01/25 PHP
详解json在php中的应用
2018/09/30 PHP
一些主流JS框架中DOMReady事件的实现小结
2011/02/12 Javascript
JQuery插件Style定制化方法的分析与比较
2012/05/03 Javascript
javascript对select标签的控制(option选项/select)
2013/01/31 Javascript
Ext JS 4实现带week(星期)的日期选择控件(实战一)
2013/08/21 Javascript
JavaScript学习笔记之基础语法
2015/01/22 Javascript
PHP实现的各种中文编码转换类分享
2015/01/23 Javascript
百度UEditor编辑器如何关闭抓取远程图片功能
2015/03/03 Javascript
js获取数组的最后一个元素
2015/04/14 Javascript
简介AngularJS中使用factory和service的方法
2015/06/17 Javascript
基于jQuery倒计时插件实现团购秒杀效果
2016/05/13 Javascript
Bootstrap 实现查询的完美方法
2016/10/26 Javascript
微信小程序 传值取值的几种方法总结
2017/01/16 Javascript
JavaScript中数组的各种操作的总结(必看篇)
2017/02/13 Javascript
详解Angular5 服务端渲染实战
2018/01/04 Javascript
react build 后打包发布总结
2018/08/24 Javascript
[原创]微信小程序获取网络类型的方法示例
2019/03/01 Javascript
微信小程序中显示倒计时代码实例
2019/05/09 Javascript
Python入门教程之运算符与控制流
2016/08/17 Python
tensorflow模型的save与restore,及checkpoint中读取变量方式
2020/05/26 Python
HTML5中的Article和Section元素认识及使用
2013/03/22 HTML / CSS
HTML5 Canvas阴影使用方法实例演示
2013/08/02 HTML / CSS
HTML5 embed 标签使用方法介绍
2013/08/13 HTML / CSS
adidas旗下高尔夫装备供应商:TaylorMade Golf(泰勒梅高尔夫)
2016/08/28 全球购物
Expedia挪威官网:酒店、机票和租车
2018/03/03 全球购物
自考生自我鉴定范文
2013/10/01 职场文书
汽车销售求职自荐信
2013/10/01 职场文书
求职信的七个关键技巧
2014/02/05 职场文书
2014年社区庆元旦活动方案
2014/03/08 职场文书
森林防火标语
2014/06/23 职场文书
建国大业观后感600字
2015/06/01 职场文书
党员理论学习心得体会
2016/01/21 职场文书
CSS实现五种常用的2D转换
2021/12/06 HTML / CSS
Vite + React从零开始搭建一个开源组件库
2022/06/25 Javascript