2

IE で動作するプレースホルダーを作成しようとしています。問題は、私のページが Ajax 経由でいくつかの要素をロードすることですが、Javascript は 1 回しかロードされません。したがって、Ajax でロードされた入力フィールドにはプレースホルダーがありません (JavaScript の実行時にこれらの要素がロードされなかったため)。

現在ロードされているだけでなく、プレースホルダーを使用してすべての入力テキスト要素にスクリプトがバインドされるようにしようとしていましたが、何が間違っているのかわかりません。

if(!$.support.placeholder) {

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

}
4

1 に答える 1

4

これを試して

if(!$.support.placeholder) {

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

}
于 2012-09-18T22:37:17.927 に答える