在 Page_Load 事件中为每个TextBox加上一个客户端事件就行,不用非得点击Button后清空protected void Page_Load(object sender, EventArgs e)
{
TextBox1.Attributes.Add("onfocus", "javascript:this.value='';"); TextBox2.Attributes.Add("onfocus", "javascript:this.value='';"); //.......}
{
TextBox1.Attributes.Add("onfocus", "javascript:this.value='';"); TextBox2.Attributes.Add("onfocus", "javascript:this.value='';"); //.......}
在页面上新加一个HiddenField控件,id设置为 HiddenField1protected void Page_Load(object sender, EventArgs e)
{
TextBox1.Attributes.Add("onfocus", "javascript:form1.HiddenField1.value=this.id;"); TextBox2.Attributes.Add("onfocus", "javascript:form1.HiddenField1.value=this.id;"); //....... }
protected void Button1_Click(object sender, EventArgs e)
{
if (!String.IsNullOrEmpty(HiddenField1.Value.Trim()))
{
TextBox ctrlTextBox = (TextBox)Page.FindControl(HiddenField1.Value.Trim());
ctrlTextBox.Text = "";
}
}
<head>
....
//脚本要放在head标签里面
<script type="text/javascript">
function clearDefault(el) {
if (el.defaultValue==el.value) el.value = ""
}
</script>
...
</head>
2.如果是输入栏(Input),在其中添加一个onfocus参数,如:<input type="text" id="input_email_address" name="email" class="input" value="Your Email Address"
onfocus="clearDefault(this)" />
3.如果是文本域,添加的onfocus参数如下:<textarea name="comment" id="input_comment" rows="10" class="input textarea"
onfocus="this.value=''; this.onfocus=null;" >Type your comment here</textarea>
另外,以上的朋友,你可以试一下,如果是onfocus或onblur这些事件,不需要在cs里面另外添加属性,会自动识别,只是不清楚是不是就ie有效。
<asp:TextBox id="textbox1" onblur="clear('textbox1');">
<script>
function clear(id)
{
document.getElementById(id).value="";
}
</script>
以上代码手写,没测试过。不过应该没问题
在asp.net下,TextBox控件默认都带有runat="server"属性,要是直接在aspx页面写TextBox的onfocus事件,系统会提示有错误。虽然并不影响程序执行,但每次看到页面中的下划线总是不爽另外,楼主的要求是点击了某个文本框后,再点击按钮,清除掉刚才点击的那个文本框的内容。在点击文本框时,文本框获得焦点,已经触发了onfocus事件,当然,再点击按钮时,文本框由于失去焦点,也会触发onblur事件
function aaa(id)
{
document.getElementById('hid').value=id;
}
function bbb()
{
document.getElementById(document.getElementById('hid').value).value="";
}
</script>
</HEAD>
<body>
<form id="Form1" method="post" runat="server">
<asp:TextBox id="TextBox1" runat="server" onfocus="aaa(this.id);">aaa</asp:TextBox>
<asp:TextBox id="TextBox2" runat="server" onfocus="aaa(this.id);">aaa</asp:TextBox>
<asp:TextBox id="TextBox3" runat="server" onfocus="aaa(this.id);">aaa</asp:TextBox>
<asp:TextBox id="TextBox4" runat="server" onfocus="aaa(this.id);">aaa</asp:TextBox>
<asp:TextBox id="TextBox5" runat="server" onfocus="aaa(this.id);">aaa</asp:TextBox>
<INPUT type="hidden" id="hid"><INPUT type="button" value="Button" onclick="bbb();">
</form>
</body>楼主要的功能已经实现,测试过
{
TextBox1.Attributes.Add("onfocus", "javascript:this.value='';"); TextBox2.Attributes.Add("onfocus", "javascript:this.value='';");
}
服务器端空间在浏览器中显示,是经过编译的,id值是会发生改变的!
你的5楼有问题,你到浏览器中去查看下网页的源代码,你就发现HiddenField的id值变了,去看看!
<asp:TextBox id="TextBox1" runat="server" onfocus="this.value=''"></asp:TextBox>
--------------------------------
不必加这个:
protected void Page_Load(object sender, EventArgs e)
{
TextBox1.Attributes.Add("onfocus", "javascript:this.value='';");
TextBox2.Attributes.Add("onfocus", "javascript:this.value='';");
//.......
}我都调试通过了,很舒服的^_^