我认为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”
导致水印文本被更改,而不是文本框的文本。
答案 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');