0

ページの読み込み時に実行するか、JavaScript がすべての html の挿入を終了したら、クリック ハンドラーで関数をラップするように単純に述べている複数の回答を検索して見つけました。

動的に作成されたページ全体があります。このスニペットを使用して、IE のプレースホルダーを修正しています。ライブで作成された要素では機能しませんが、機能します。

$(document).ready(function(){    
    // Placeholder Fix for IE < 9    
    $("[placeholder]").each(function() {        
        var val = $(this).attr("placeholder");
        if ( this.value === "" ) {
            this.value = val;
        }
        $(this).focus(function() {
            if ( this.value == val ) {
                this.value = "";
            }
        }).blur(function() {
            if ( $.trim(this.value) === "" ) {
                this.value = val;
            }
        });
    });
    // Clear default placeholder values on form submit
    $('form').submit(function() {
        $(this).find("[placeholder]").each(function() {
            if ( this.value == $(this).attr("placeholder") ) {
                this.value = "";
            }
        });
    });
});

js を使用してフォーム要素を追加しています。例:

$('body').append('<input type="text" placeholder="placeholdertext" />');

誰かがこの問題を解決する方法をアドバイスできますか?

シャノン

4

1 に答える 1

0

これはあなたが探しているものですか?

on() 関数は、特定の要素 (.focus や .blur など) だけでなく、ページ上のセレクターに適合するすべての要素にハンドラーを適用します。 詳細情報: http://api.jquery.com/on/

$(this).on("focus", function() {
            if ( this.value == val ) {
                this.value = "";
            }
        }).on("blur", (function() {
            if ( $.trim(this.value) === "" ) {
                this.value = val;
            }
        });
});
于 2013-04-22T02:38:49.990 に答える