克隆输入时,onblur不起作用

时间:2013-01-24 10:03:16

标签: javascript jquery

我想将输入类型文本更改为密码。但它在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);
        }
    });
});

2 个答案:

答案 0 :(得分:0)

更改

$('#password1').blur(function () {

$('body').on('focusout','#password1',function () {

请参阅.on()

W3C指定focusblur事件不冒泡,但jQuery定义了冒泡的跨浏览器focusinfocusout事件。当focusblur用于附加委托事件处理程序时,jQuery会映射名称并分别将其作为focusinfocusout传递。为保持一致性和清晰度,请使用冒泡事件类型名称。

答案 1 :(得分:-2)

使用on事件代理

试试这个

$(document).on('blur','#password1',function () {...

document替换为最接近的元素