【问题标题】:How to clear ASP.NET Textbox only on the first click如何仅在第一次单击时清除 ASP.NET 文本框
【发布时间】:2014-12-17 00:38:18
【问题描述】:

我在 asp.net 页面中有以下文本框。

<asp:TextBox ID="TtxtMessage"  Text="Write Here" ForeColor="Control" runat="server" Height="300px" TextMode="MultiLine" Width="274px"></asp:TextBox>

文本框中的默认文本为write here。如果用户点击我想清除文本,这应该只发生在第一次点击时。对于后续点击,用户输入的内容应该保持不变。如何使用 Javascript 或 Code Behind 做到这一点?

【问题讨论】:

  • 不确定“仅第一次点击”是什么意思,第三次点击会发生什么?
  • 在第三次或随后的点击中,文本应该保持不变。 (用户之前输入的任何内容
  • 使用 jquery 非常简单...看看viralpatel.net/blogs/…,您可以使用
  • 这个概念称为placeholder (html5) 或watermark。您正在尝试手动执行此操作,但已经有很多事情可以为您执行此操作。

标签: asp.net


【解决方案1】:

占位符将是一个很好的答案(请参阅Add HTML5 placeholder text to a textbox .net)。

但是使用 jquery(请注意,我不确定 asp.net 是否仍然会破坏呈现的 html 中的控件 ID),这样的事情可能会起作用:

<script>
$(document).ready(function() {

  var firstClickOccurred = false;

  $("#TtxtMessage").focus(function() {
    if(!firstClickOccurred) {
      $(this).val('');
      firstClickOccurred = true;
    }
  });

});
</script>

【讨论】:

    【解决方案2】:

    你可以像这样使用占位符属性

    <asp:TextBox ID="TtxtMessage"  placeholder="Write Here" ForeColor="Control" runat="server" Height="300px" TextMode="MultiLine" Width="274px"></asp:TextBox>
    

    【讨论】:

    • 占位符是 HTML5 名称,而不是 asp 文本框上的属性。
    • @QuakeCore,您可以通过解释占位符仅限于 HTML5 和已实现它的现代浏览器来改进您的答案。
    猜你喜欢
    • 2014-12-19
    • 1970-01-01
    • 1970-01-01
    • 2018-08-23
    • 1970-01-01
    • 2012-12-22
    • 1970-01-01
    • 2011-10-21
    • 2012-06-26
    相关资源
    最近更新 更多