单击任何其他控件时如何清除文本

时间:2012-04-23 15:10:56

标签: javascript asp.net

下面的js脚本运行正常,但是存在小问题,问题是:

我有一个带有多行的文本框,当用户点击它时它确实清除了文本框,但问题是;当用户单击“保存”按钮(asp.net控制按钮)以保存文本框值时,我希望忽略后面的代码以及客户端。

我可以做的一件事就是比较价值并清除它是否已经过了匹配但是如果;如果我有很多控件,并且不想在代码中的每个位置传播字符串...

寻找优化的解决方案。

<asp:TextBox runat="server" ID="txtNew" 
onclick="if (this.value == 'Enter here...') this.value = ''" TextMode="MultiLine"
Rows="7" Width="100%">Enter here...</asp:TextBox>

2 个答案:

答案 0 :(得分:1)

看起来你正试图在textarea / textbox上做一个水印功能吗?

为什么不查看html5 placeholder属性?在这里查看此示例http://jsfiddle.net/k2PLG/1/

placeholder attibute不是发布或验证的值。此外,由于您使用的是javascript,因此您可以确保包含一个html5 javascript文件,该文件可以在不支持它的旧版浏览器中使用。

答案 1 :(得分:0)

您无需对Enter here...进行硬编码,而是使用defaultValue

<asp:TextBox runat="server" ID="txtNew" 
onclick="if (this.value == this.defaultValue) this.value = ''" TextMode="MultiLine"
Rows="7" Width="100%">Enter here...</asp:TextBox>

对于问题的代码隐藏部分:

我建议使用RequiredFieldValidator(因为“在这里输入”表明它是强制性的)。然后,您可以使用InititalValue属性作为默认文本,因此用户必须输入要提交页面的内容。