3

このjquery関数を使用して、テキストボックスのヒントを表示します

これは機能です

function textboxHint(id, options) {
    var o = { selector: 'input:text[title]', blurClass:'blur' };
    $e = $('#'+id);
    $.extend(true, o, options || {});

    if ($e.is(':text')) {
      if (!$e.attr('title')) $e = null;
    } else {
      $e = $e.find(o.selector);
    }
    if ($e) {
      $e.each(function() {
      var $t = $(this);
      if ($.trim($t.val()).length == 0) { $t.val($t.attr('title')); }
      if ($t.val() == $t.attr('title')) {
    $t.addClass(o.blurClass);
      } else {
        $t.removeClass(o.blurClass);
      }

     $t.focus(function() {
    if ($.trim($t.val()) == $t.attr('title')) {
      $t.val('');
      $t.removeClass(o.blurClass);
    }
    }).blur(function() {
      var val = $.trim($t.val());
      if (val.length == 0 || val == $t.attr('title')) {
        $t.val($t.attr('title'));
        $t.addClass(o.blurClass);
      }
    });

         // empty the text box on form submit               
    $(this.form).submit(function(){
      if ($.trim($t.val()) == $t.attr('title')) $t.val('');
    });
   });
 }
}

これはhtmlです

<form action="" method="" class="search" >
    <input type="text"  name="search" class="text"  title="Search Subjects..." id="block" />
    <input type="submit"  name="submit"  value="Search" class="submit" />
</form>

私はこのような関数を呼び出しました..

$(document).ready(function() {
    textboxHint("block");
});

これは機能しています..しかし、問題は、この関数を使用して、2 つの異なる ID を持つ 2 つの異なるテキスト ボックスにヒントを表示する必要があることです。例: Id = block1 および Id = block2 など...

これを行うためにこの関数を変更するのを手伝ってくれる人はいますか?

4

2 に答える 2

4

これはどうですか:

$(document).ready(function() {
    textboxHint("block1");
    textboxHint("block2");
    textboxHint("block3");
});

ご覧のとおり、関数は引数として id を要求するため、関数を複数回呼び出すことで異なる id を指定できます。

よろしく

于 2012-12-13T03:54:21.177 に答える
2

セレクターを受け取り、各要素をループするように関数を変更するのはどうですか。

function textboxHint(selector, options) {
    $(selector).each(function(){
        var o = { selector: 'input:text[title]', blurClass:'blur' };
        $e = this;
        $.extend(true, o, options || {});

        if ($e.is(':text')) {
          if (!$e.attr('title')) $e = null;
        } else {
          $e = $e.find(o.selector);
        }
        if ($e) {
          $e.each(function() {
          var $t = $(this);
          if ($.trim($t.val()).length == 0) { $t.val($t.attr('title')); }
          if ($t.val() == $t.attr('title')) {
        $t.addClass(o.blurClass);
          } else {
            $t.removeClass(o.blurClass);
          }

         $t.focus(function() {
        if ($.trim($t.val()) == $t.attr('title')) {
          $t.val('');
          $t.removeClass(o.blurClass);
        }
        }).blur(function() {
          var val = $.trim($t.val());
          if (val.length == 0 || val == $t.attr('title')) {
            $t.val($t.attr('title'));
            $t.addClass(o.blurClass);
          }
        });

             // empty the text box on form submit               
        $(this.form).submit(function(){
          if ($.trim($t.val()) == $t.attr('title')) $t.val('');
        });
       });
    }   
    });
}

そしてそれを次のように呼び出します:

<form action="" method="" class="search" >
    <input type="text"  name="search" class="text"  title="Search Subjects..." class="block" id="block1" />
    <input type="text"  name="search" class="text"  title="Search Subjects..." class="block" id="block2" />
    <input type="submit"  name="submit"  value="Search" class="submit" />
</form>

$(document).ready(function() {
    textboxHint(".block");
});
于 2012-12-13T04:04:53.050 に答える