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

为了实现输入框的效果,当输入框不在焦点时,输入密码的值;当输入框失去焦点时,输入内容如下所示



我们对下面的js有一个直接的想法

$(# showpwd)。焦点(函数(){)
$(这)。Attr(,'password);
});

发现并没有达到预期的效果,未捕获的异常类型的属性是不可改变的错误,查看jQuery 1.42源代码1488行

我们不能允许更改类型属性(因为它会导致IE中的问题)
如果(name =型rtype.test(元素。nodeName)元素。parentNode){
JQuery.error(类型的属性是不可改变的);
}

jQuery不能修改js的源代码吗

$(# PWD)。焦点(函数(){)
$(# PWD){ 0 }。type=密码;
$(# PWD)瓦迩();
});

研究发现,它可以修改下FF,修改密码输入框键入密码和设置的值为空,而IE表明类型属性无法获得,不支持command.pop-up型看起来真的不明白吗

$(# showpwd)。焦点(函数(){)
警报($(# showpwd){ 0 }。型);
$(# showpwd){ 0 }。type=密码;
$(# showpwd)瓦迩();
});

发现弹出文本,本来不是得不到的,只有IE不能修改。所以,我们想到一个可以先删除的密码框,然后是一个类型是一个密码。

下面的类型是密码输入框



$(# showpwd)。焦点(函数(){)
无功text_value =美元(这)瓦迩();
如果(text_value = =这个默认值){
$(# showpwd)隐藏();
$(#密码),表明()。焦点();
}
});
$(#密码)。Blur(function(){)
无功text_value =美元(这)瓦迩();
(text_value = =如果){
$(# showpwd)显示();
$(#密码隐藏());
}
});

最后效果:当输入框获得焦点时,输入的内容将显示***;当焦点丢失时,内容在显示密码时为空。