【问题标题】:asp.net c# text box onclick empty if default text. Unchanged if not default textasp.net c# 文本框 onclick 如果默认文本为空。如果不是默认文本,则保持不变
【发布时间】:2014-02-16 14:46:42
【问题描述】:

我在我的 aspx 页面中放了一个文本框控件:

<asp:TextBox ID="SearchCriteriaTextBox" runat="server" Text="Enter Search Criteria" Width="150px" ForeColor="GrayText" OnClick="this.value = ''; this.style.color = 'black'" OnBlur="javascript:changeText(this.id)" />

所以文本框在点击时为空。保留我输入的任何内容。但是,如果我单击文本框外部,然后单击返回文本框以编辑我键入的文本,则它不起作用。它使整个文本框为空。

基本上,我正在尝试获得类似的功能,例如此论坛中的搜索文本框。默认情况下,文本是:“搜索 ASP.NET”。我单击输入内容,文本框变空。我键入“Monir”并在框外单击。它保留文本“Monir”。我点击返回编辑文本,它保留“Monir”,所以现在我可以添加“like asp.net”所以文本现在是:“Monir like asp.net”

有什么帮助吗??

【问题讨论】:

  • 使用AJAX工具包的'TextBoxWatermarkExtender'
  • 使用 HTML5 placeholder 并使用 JavaScript,例如 here

标签: c# asp.net


【解决方案1】:

试试这个:

<asp:TextBox runat="server" ID="txt" onblur="if(this.value=='')this.value=this.defaultValue;" value="Enter Search Criteria" onfocus="if(this.value==this.defaultValue)this.value='';"></asp:Textbox>

【讨论】:

【解决方案2】:
<asp:TextBoxWatermarkExtender ID="txtSearchWaterMark" 
    runat="server" TargetControlID="SearchCriteriaTextBox" 
    WatermarkText="Enter Search Criteria..." />

<asp:TextBox ID="SearchCriteriaTextBox" runat="server" />

【讨论】:

    【解决方案3】:

    我知道这篇文章很旧,但我使用了 Kashif 提供的答案并稍作修改。而不是 asp 标签,我不得不使用 ajax 标签。另外,另一个注意事项,如果您希望将此作为可选字段并且如果您要从文本框中提取文本,则第一个答案中描述的 on blur/on focus 方法将在用户不输入时拉取占位符任何事物。但是 TextBoxWatermark 没有,因此如果文本框是可选字段,则您要使用它。

    【讨论】:

    • 您应该以这样一种方式格式化您的答案,如果@Kashif 答案被删除,您的答案将独立(同时提到他的答案作为参考,就像您所做的那样)。另外,使用段落...
    猜你喜欢
    • 2011-08-30
    • 2011-07-07
    • 1970-01-01
    • 2017-10-07
    • 1970-01-01
    • 1970-01-01
    • 2013-01-10
    • 2013-12-14
    • 2011-08-31
    相关资源
    最近更新 更多