0

我正在使用 c# 在 asp.net 中开发 web 应用程序,所以我将 asp:textbox 放在 web 应用程序中。当我加载页面时,我希望在文本框中有默认文本,当我将光标放在它上面并输入第一个字母时,文本框从文本框中变得清晰。

4

4 回答 4

1

你问的是所谓的水印。有很多方法可以做到这一点

第三方工具,例如:

一个。Ajax 工具包。你可以在这里看到它的作用

湾。Telerik RadTextBox 控件(通过设置其EmptyMessage属性)。

等等。

您可以自己使用简单的 javascript 构建一个,如下所示:

<script>
$(document).ready(function() {
 var watermark = 'textbox watermark text';
 $('#inputTextboxId').blur(function(){
  if ($(this).val().length == 0)
    $(this).val(watermark).addClass('watermark');
 }).focus(function(){
  if ($(this).val() == watermark)
    $(this).val('').removeClass('watermark');
 }).val(watermark).addClass('watermark');
});
</script>

并在您的容器中放置一个输入控件,例如 body

<body>

<input id="inputTextboxId" type="text" />
</body>

此外,如果您的整个工作区都位于支持 HTML5 的浏览器中,那么只需执行以下操作:

<input type="text" placeholder="Enter your name...">

并且您的文本框将带有水印“输入您的姓名...”,该水印会在焦点上消失。

于 2012-12-12T12:03:21.293 回答
0

尝试下面提到的以下代码,它将帮助您解决问题

<asp:TextBox ID="Textbox"
             CssClass="Input" 
             onfocus="if(this.value == 'Name'){this.value='';}" 
             onblur="if(this.value == ''){this.value='Name';}" 
             Width="300" 
             runat="server" 
             text="Name" />
于 2012-12-12T11:52:27.200 回答
0

另一种选择是HTML5 Placeholder tag,尽管并非所有浏览器都完全支持它。

我会推荐 @Jon Malcolm 建议的 javascript 替代方案。

于 2012-12-12T12:00:42.557 回答
0

You can do this using the AjaxControlToolkit's TextBoxWatermark extender. Add the AjaxControlToolkit to your project (using Nuget is the easiest way), and then in your markup you can specify the text to be displayed like this:

<asp:textbox runat="server" id="MyTextBox" />
<ajaxtoolkit:TextBoxWatermarkExtender runat="server" id="MyTextBoxExtender" TargetControlId="MyTextBox" WatermarkText="Default Text" />

Or you can do this with the jQuery Watermark plugin - there's details on how to implement this in the answer to this question.

于 2012-12-12T12:01:13.217 回答