1

我知道,我知道,“不要使用 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 中。

任何想法如何实现这一点?

4

1 回答 1

2

您需要设置和使用水印扩展器本身的行为标识。

<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');
}
于 2013-08-07T12:40:35.663 回答