Ajaxtoolkit TextboxWatermarkExtender:如何从Javascript更改文本

时间:2010-04-23 20:44:37

标签: asp.net

我认为thaAjaxControlToolkitTextBoxWrapper这个用来工作,但我认为升级到最新版本的teh Toolkit(4件事)打破了它:

    var txtExpireYear = document.getElementById("ctl00_phPageContent_dtmPassportExpirationDate_txtYear");
  txtExpireYear.AjaxControlToolkitTextBoxWrapper.set_Value(dtmDateOfExpire.getFullYear()); 

我现在收到错误:

Microsoft JScript runtime error: 'AjaxControlToolkitTextBoxWrapper' is null or not an object

执行此操作:

txtExpireYear.innerText = “VALUE1” txtExpireYear.value = “VALUE2”

导致水印文本被更改,而不是文本框的文本。

3 个答案:

答案 0 :(得分:3)

文本框的文本由TextBoxWatermarkExtender的行为对象处理。

要在javascript中访问此对象,请先指定行为的ID:

<asp:TextBox ID="myTextBox" ... />
<ajaxtoolkit:TextBoxWatermarkExtender ID="myTextBoxWatermark" BehaviorID="myTextBoxBehavior" TargetControlID="myTextBox"  WatermarkText="Enter data here ..." ... />

在javascript中,找到此对象并使用set_Text()方法

$find('myTextBoxBehavior').set_Text('Entered Data');

类似地,有一个get_Text()方法,用于获取文本框的实际值

答案 1 :(得分:2)

试试这个:

更改

txtExpireYear.AjaxControlToolkitTextBoxWrapper.set_Value(dtmDateOfExpire.getFullYear()); 

对此:

txtExpireYear.TextBoxWrapper.set_Value(dtmDateOfExpire.getFullYear())

如果它不起作用,请将您正在使用的ScriptManager控件交换为AjaxToolkit替换控件“ToolkitScriptManager”

答案 2 :(得分:0)

如果您想更改水印本身的文字,还有set_WatermarkText()方法。

扩展Edwin的例子:

$find('myTextBoxBehavior').set_WatermarkText('Entered Data');