从文本框中删除默认文本

时间:2010-11-26 04:26:11

标签: c# asp.net

我将此文本框的默认值设置为“名字”。现在,当我在此文本框内单击以输入名称时,此值“名字”将继续显示。我想要的是在我单击它内部时立即清除文本框。我需要在mt textbox标签中设置什么属性?

[编辑] 那些来自Telerik的东西,我可以用来做那件事吗?

6 个答案:

答案 0 :(得分:6)

TextBox中没有开箱即用的功能可以完成此任务,但ASP.Net Ajax Toolkit有一个Watermark Extender可以执行您想要的任何操作。

我已使用过两者,但现在亲自使用jQuery Watermark Plugin

要么工作正常,请根据您的需要选择。

根据Telerik文档,您只需在TextBox控件上设置EmptyMessage属性即可。 Demo Page Here

答案 1 :(得分:2)

在后面的代码中,在Page Load上,您可以添加以下代码来实现此目的

TextBox1.Attributes.Add("onClick", "javascript:if(this.value=='First Name'){this.value='';}");

答案 2 :(得分:2)

您可以使用@Josh建议的方法。如果您不想使用Ajax Toolkit控件或JQuery,可以使用Javascript自行编写。编写一个函数,当文本框控件收到foucs时调用该函数。我觉得这个函数叫做onfocus,或只是专注于Javascript。

答案 3 :(得分:2)

您好,我刚刚写了这个小功能,可以达到您想要的效果

function clearInputBox(x,prefil){
    if(x.value == prefil){ 
        x.value = '';
    }
}

您的输入框如下所示

<input type='text' value='First Name' onfocus="clearInputBox(this,'First Name')" />

答案 4 :(得分:1)

可能this会帮助您

答案 5 :(得分:0)

将Shobans建议更进一步,你可以在你的Page子类

中添加这样的东西
protected override void OnInitComplete(EventArgs e)
{
    string jsString = "javascript:if(this.value=='" + TextBox1.Text + "'){this.value='';}";
    TextBox1.Attributes.Add("onFocus", jsString);
    base.OnInitComplete(e);
}

这将做的是,它始终会认为默认字符串是此控件在esign时包含的字符串(.aspx文件中的初始字符串),因此每次更改时都不必在代码隐藏中手动更改它你的.aspx。请记住,OnIinitComplete在应用任何视图状态或回发数据之前触发,但在页面上的控件设置为默认值之后触发。

P.S。正如anishMarokey指出的那样,使用onFocus vs onClick,因为字段可以通过Tab键获得焦点而无需点击。