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

It's really simple with jQuery, check this:

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');
  }); 
});

Here goes jsFiddle. No need for plugins or much code for this.

于 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而不是 on focus/blur

jsFiddle 编辑显示 mouseover/mouseout

于 2012-08-15T19:04:38.830 回答