我将此文本框的默认值设置为“名字”。现在,当我在此文本框内单击以输入名称时,此值“名字”将继续显示。我想要的是在我单击它内部时立即清除文本框。我需要在mt textbox标签中设置什么属性?
[编辑] 那些来自Telerik的东西,我可以用来做那件事吗?
答案 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键获得焦点而无需点击。