0

動的に作成されたフォーム要素に 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('');
        }
    })
});
4

1 に答える 1

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();

このリファクタリングが機能するかどうか教えてください。

于 2012-10-31T17:58:39.753 に答える