我想将输入类型文本更改为密码。但它在ie8中不起作用。我找到了解决方案;克隆并替换输入但是onblur在克隆后不起作用。
调试器不会破坏OnBlur功能。有人能告诉我吗?
这是js代码:
$(document).ready(function () {
var input = document.getElementById("Password");
var input2 = input.cloneNode(false);
input2.id = 'password1';
input2.type = 'password';
$('#Password').focus(function () {
input.parentNode.replaceChild(input2, input);
input2.focus();
});
$('#password1').blur(function () {
if ($(this).val() == '' || $(this).val() == Passwordtxt) {
document.getElementById("password1").setAttribute("type", "text");
$(this).val(Passwordtxt);
}
});
});
答案 0 :(得分:0)
更改
$('#password1').blur(function () {
到
$('body').on('focusout','#password1',function () {
请参阅.on()
W3C指定focus
和blur
事件不冒泡,但jQuery定义了冒泡的跨浏览器focusin
和focusout
事件。当focus
和blur
用于附加委托事件处理程序时,jQuery会映射名称并分别将其作为focusin
和focusout
传递。为保持一致性和清晰度,请使用冒泡事件类型名称。
答案 1 :(得分:-2)
使用on
事件代理
试试这个
$(document).on('blur','#password1',function () {...
将document
替换为最接近的元素