js怎么弹出自定义输入框php,js动态修改input输入框的type属性(实现方法解析)

本文是对js动态修改input输入框的type属性的实现方法。进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助

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

$(“#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();

}

});

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值