2

これを行うためのより良い方法はありますか

$("#<%=Text_Name.ClientID%>").mouseleave(function () {
    var t_name = this.value;

    if (t_name == "") {
        $(this).val("Name");
        $("#<%=Text_Name.ClientID%>").addClass("grey_add");
        $("#<%=Text_Name.ClientID%>").removeClass("black_add");
    }
});

このコードが行うことは、テキストボックスからスクロールアウトすると、テキストボックスが元に戻ることです"Name"

この手法の使用に関する欠点は、ユーザーがマウスをテキストボックスの外に移動すると、ユーザーが入力したときに何かが入力されることです。

4

4 に答える 4

2

jQueryを使用すると非常に簡単です。これを確認してください。

html

<input type="text" id="myInput" value="Name" />

jQuery

$(function() {
  $('#myInput').focusin(function() {
      $(this).val('');   
  });

  $('#myInput').focusout(function() {
      $(this).val('Name');   
      $(this).css('background-color', '#ccc');
  }); 
});

これがjsFiddleです。このためのプラグインや多くのコードは必要ありません。

于 2012-08-15T19:10:53.490 に答える
1
<input name="search" placeholder="<%=Text_Name.ClientID%>"/>

JavaScriptは必要ありません。

于 2012-08-15T19:03:28.517 に答える
0
$("#<%=Text_Name.ClientID%>").blur(function () {
    var t_name = this.value;

    if (t_name == "") {
        $(this).val("Name");
        $("#<%=Text_Name.ClientID%>").addClass("grey_add");
        $("#<%=Text_Name.ClientID%>").removeClass("black_add");
    }
});

このイベントは、スタックオーバーフローの右上にあるテキストボックスがおそらく使用している他の何かに焦点を合わせたときに発生します。

于 2012-08-15T19:00:13.883 に答える
0

私がここに投稿していた透かしプラグインを調べることができます:

カスタムjQueryプラグインはval()を返します

mouseover / mouseoutの代わりに編集するだけfocus/blurです。

jsFiddleは、マウスオーバー/マウスアウトを表示するように編集されました

于 2012-08-15T19:04:38.830 に答える