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 相关文章推荐
前后台交互过程中json格式如何解析以及如何生成
Dec 26 Javascript
Script标签与访问HTML页面详解
Jan 10 Javascript
21个JavaScript事件(Events)属性汇总
Dec 02 Javascript
javascript判断数组内是否重复的方法
Apr 21 Javascript
基于JavaScript实现跳转提示页面
Sep 24 Javascript
Angular2下使用pdf插件的方法详解
Apr 29 Javascript
JavaScript判断浏览器和hack滚动条的写法
Jul 23 Javascript
vue项目中使用百度地图的方法
Jun 08 Javascript
解决vue单页面应用中动态修改title问题
Jun 09 Javascript
layui 实现table翻页滚动条位置保持不变的例子
Sep 05 Javascript
使用Angular9和TypeScript开发RPG游戏的方法
Mar 25 Javascript
基于JavaScript实现年月日三级联动
Jun 22 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
php4的session功能评述(二)
2006/10/09 PHP
phpmyadmin 常用选项设置详解版
2010/03/07 PHP
解析argc argv在php中的应用
2013/06/24 PHP
php获取$_POST同名参数数组的实现介绍
2013/06/30 PHP
PHP微信开发之有道翻译
2016/06/23 PHP
CI框架常用经典操作类总结(路由,伪静态,分页,session,验证码等)
2016/11/21 PHP
PHP如何搭建百度Ueditor富文本编辑器
2018/09/21 PHP
Wordpress ThickBox 点击图片显示下一张图的修改方法
2010/12/11 Javascript
19个很有用的 JavaScript库推荐
2011/06/27 Javascript
你的 mixin 真的兼容 ECMAScript 5 吗?
2013/04/11 Javascript
JS的参数传递示例介绍
2014/02/08 Javascript
jQuery瀑布流插件Wookmark使用实例
2014/04/02 Javascript
图片旋转、鼠标滚轮缩放、镜像、切换图片js代码
2020/12/13 Javascript
关于获取DIV内部内容报错的原因分析及解决办法
2016/01/29 Javascript
vue中计算属性(computed)、methods和watched之间的区别
2017/07/27 Javascript
基于AngularJS的简单使用详解
2017/09/10 Javascript
vue几个常用跨域处理方式介绍
2018/02/07 Javascript
Vue实现带进度条的文件拖动上传功能
2018/02/23 Javascript
vue 根据选择条件显示指定参数的例子
2019/11/09 Javascript
微信小程序自定义弹出模态框禁止底部滚动功能
2020/03/09 Javascript
JS异步宏队列微队列原理详解
2020/09/09 Javascript
全面解析Vue中的$nextTick
2020/12/24 Vue.js
Python 爬虫学习笔记之正则表达式
2016/09/21 Python
微信跳一跳python辅助软件思路及图像识别源码解析
2018/01/04 Python
Python 编码规范(Google Python Style Guide)
2018/05/05 Python
Python中.join()和os.path.join()两个函数的用法详解
2018/06/11 Python
解决python3捕获cx_oracle抛出的异常错误问题
2018/10/18 Python
Python装饰器简单用法实例小结
2018/12/03 Python
pyenv虚拟环境管理python多版本和软件库的方法
2019/12/26 Python
浅谈Django QuerySet对象(模型.objects)的常用方法
2020/03/28 Python
Keras在训练期间可视化训练误差和测试误差实例
2020/06/16 Python
解决keras GAN训练是loss不发生变化,accuracy一直为0.5的问题
2020/07/02 Python
N.Peal官网:来自伦敦的高档羊绒品牌
2018/10/29 全球购物
Python使用openpyxl复制整张sheet
2021/03/24 Python
女性健康知识讲座主持词
2015/07/04 职场文书
Python带你从浅入深探究Tuple(基础篇)
2021/05/15 Python