js动态修改input输入框的type属性(实现方法解析)

 更新时间:2013年11月13日 09:36:33   作者:  
本文是对js动态修改input输入框的type属性的实现方法。进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助

需要实现的效果:一个输入框,当输入框未获得焦点的时候,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();
}
});

最终效果: 当输入框获得焦点的时,输入的内容显示为“****”;当失去焦点的时,内容为空时显示“密码”。

相关文章

  • 微信小程序实现图片拖拽调换位置效果(开箱即用)

    微信小程序实现图片拖拽调换位置效果(开箱即用)

    本篇文章给大家介绍如何在微信小程序中实现图片的拖拽排序和删除功能,通过创建自定义组件并使用示例代码,代码简单易懂,感兴趣的朋友跟随小编一起看看吧
    2024-12-12
  • JavaScript高仿支付宝倒计时页面及代码实现

    JavaScript高仿支付宝倒计时页面及代码实现

    在支付宝上我们经常会见到支付宝倒计时功能,倒计时应用非常广泛,下文给大家介绍js制作支付宝倒计时功能,但是里面涉及到,倒计时,弹框,以及字体图的相关知识,感兴趣的朋友一起看看吧
    2016-10-10
  • 性能优化篇之Webpack构建速度优化的建议

    性能优化篇之Webpack构建速度优化的建议

    这篇文章主要介绍了性能优化篇之Webpack构建速度优化的建议,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • 10大Js图像处理库

    10大Js图像处理库

    这篇文章主要介绍了10大Js图像处理库,对图像处理感兴趣的同学,可以参考下
    2021-04-04
  • JavaScript实现简单的拖拽效果

    JavaScript实现简单的拖拽效果

    这篇文章主要为大家详细介绍了JavaScript实现简单的拖拽效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • JavaScript中的函数申明、函数表达式、箭头函数

    JavaScript中的函数申明、函数表达式、箭头函数

    js中的函数可以通过几种方式创建,具体创建方法通过实例代码给大家介绍的非常详细,文中通过例子给大家介绍了函数声明和表达式之间的差别,感兴趣的朋友跟随小编一起看看吧
    2019-12-12
  • JavaScript设计模式之工厂方法模式介绍

    JavaScript设计模式之工厂方法模式介绍

    这篇文章主要介绍了JavaScript设计模式之工厂方法模式介绍,本文讲解了简单工厂模式、多个工厂方法模式等内容,需要的朋友可以参考下
    2014-12-12
  • JS使用数组实现的队列功能示例

    JS使用数组实现的队列功能示例

    这篇文章主要介绍了JS使用数组实现的队列功能,结合实例形式分析了javascript基于数组的队列定义、元素添加、读取等相关操作技巧,需要的朋友可以参考下
    2019-03-03
  • JavaScript实现tab栏切换的效果

    JavaScript实现tab栏切换的效果

    这篇文章主要为大家详细介绍了JavaScript实现tab栏切换的效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • JavaScript使用canvas绘制随机验证码

    JavaScript使用canvas绘制随机验证码

    这篇文章主要为大家详细介绍了JavaScript使用canvas绘制随机验证码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02

最新评论