2010-04-23 2 views
3

Я думаю thaAjaxControlToolkitTextBoxWrapperThis использовать для работы, но я думаю, что обновление до того последней версии Teh Toolkit (4-то) преломил:Ajaxtoolkit TextboxWatermarkExtender: Как изменить текст с Javascript

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 = "значение1" txtExpireYear.value = "значение2"

приводит к изменению текста водяного знака, а не текста текстового поля.

ответ

2

Попробуйте это:

Изменить

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

Для этого:

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

Если он не работает, замените элемент управления ScriptManager вы используете для AjaxToolkit управления замены «ToolkitScriptManager "

3

Текст текстового поля обрабатывается объектом поведения от TextBoxWatermarkExtender.

Чтобы получить доступ к этому объекту в JavaScript, сначала указать идентификатор для поведения:

<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(), чтобы получить фактическое значение текстового поля

+0

Это выглядит декларативной эквивалент того, что я сказал раньше работал в предыдущей версии набора инструментов. – ChadD

0

Если вы хотите изменить текст самого водяного знака, есть также метод set_WatermarkText().

Расширение на примере Эдвина:

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