将jQuery占位符添加到动态创建的表单元素中

时间:2012-10-31 17:50:28

标签: jquery forms placeholder

是否有人成功将IE8的jQuery占位符文本添加到动态创建的表单元素中。

例如,我单击一个按钮,会出现一个通过AJAX加载的表单,我需要使用占位符文本命中新表单。

我尝试过使用jQuery .live,.bind,.on等...但是在创建新元素时都没有捕获它们。

我也尝试将它放在点击功能中,这样当他们点击按钮时,占位符功能就会被激活。

$('input[placeholder]').on("focus", function() {
    var input = $(this);
    if (input.val() == input.attr('placeholder')) {
        input.val('');
        input.removeClass('placeholder');
    }
}).blur(function() {
    var input = $(this);
    if (input.val() == '' || input.val() == input.attr('placeholder')) {
        input.addClass('placeholder');
        input.val(input.attr('placeholder'));
    }
}).blur().parents('form').submit(function() {
    $(this).find('input[placeholder]').each(function() {
        var input = $(this);
        if (input.val() == input.attr('placeholder')) {
            input.val('');
        }
    })
});

1 个答案:

答案 0 :(得分:1)

$(document).on({
    focus: function() {
        var input = $(this);
        if (input.val() == input.attr('placeholder')) {
            input.val('');
            input.removeClass('placeholder');
        }
    },
    blur: function() {
        var input = $(this);
        if (input.val() == '' || input.val() == input.attr('placeholder')) {
            input.addClass('placeholder');
            input.val(input.attr('placeholder'));
        }
    }
},"input[placeholder]");


$(document).on("submit","form",function() {
    $(this).find('input[placeholder]').each(function() {
        var input = $(this);
        if (input.val() == input.attr('placeholder')) {
            input.val('');
        }
    });
});

$('input[placeholder]').blur();

如果重构有效,请告诉我。