我知道,我知道,“不要使用AjaxToolKit”......但我认为我坚持使用它。
如果我有以下内容:
<asp:TextBox runat="server" ID="textBox" />
<asp:TextBoxWatermarkExtender runat="server
TargetControlID="textBox"
WatermarkText="Text" />
和
var textBoxSelector = $(#'<%= textBox.ClientID %>');
然后这不起作用(即它改变了水印文本而不是所需的文本)
textBoxSelector.val('example text');
但是我在Chrome中发现了这一点:
textBoxSelector.focus();
textBoxSelector.val('example text');
但不是在Internet Explorer中。
有任何想法如何实现这个?
答案 0 :(得分:2)
您需要设置和使用水印扩展器本身的behaviorid。
<asp:TextBox runat="server" ID="textBox" />
<asp:TextBoxWatermarkExtender runat="server
TargetControlID="textBox" BehaviorID="textboxWaterMark"
WatermarkText="Text" />
然后使用$find()
访问该对象和set_Text()
var textboxWaterMark = $find("textboxWaterMark");
textboxWaterMark.set_Text('example text');
如果$find()
返回null,则可能必须等到页面加载完毕。不使用jQuery,而是使用工具包
Sys.Application.add_load(MyFunction);
function MyFunction() {
var textboxWaterMark = $find("textboxWaterMark");
textboxWaterMark.set_Text('example text');
}