2012-11-07 3 views
1

У меня есть asp.net текстовое поле (ID = «HTMLTextBox_Comments») с HTMLEditorExtender:Javascript установленное значение TextBox с HTMLEditorExtender

<asp:TextBox ID="HTMLTextBox_Comments" runat="server" Height="200px" Rows="5" 
     TextMode="MultiLine" Width="469px"></asp:TextBox> 
<ajaxToolkit:HtmlEditorExtender ID="HTMLTextBox_Comments_HtmlEditorExtender" 
     runat="server" Enabled="True" TargetControlID="HTMLTextBox_Comments"> 
</ajaxToolkit:HtmlEditorExtender> 

Я устанавливаю значение текстового поля с JavaScript как это:

var MyControl = document.getElementById("MainContent_HTMLTextBox_Comments"); //this gets the control just fine 
MyControl.value = "Here's some text"; 

Если у меня есть предупреждение показать мне значение, то он отображает «Вот какой-то текст», но этот текст не отображается в самом TextBox.

Я также попытался установить MyControl.innerHTML и MyControl.text, но ни один из них, похоже, не работает.

Как я могу отобразить значение TextBox в TextBox?

Заранее благодарен!

EDIT Я нашел this post, что, кажется, показывают, что .value является то, что я должен использовать, чтобы установить текст этого TextBox, но он просто не отображается. Что мне не хватает?

+1

Возможно, взглянув на визуализированный html, вы получите несколько подсказок. – Musa

+1

Представленный HTML для элемента управления: ' тип <вход = «скрытый» имя = «ctl00 $ MainContent $ HTMLTextBox_Comments_HtmlEditorExtender_ClientState» ID = «MainContent_HTMLTextBox_Comments_HtmlEditorExtender_ClientState» /> ' – nickvans

ответ

0

WebForms добавляют сумасшедший идентификатор к вашим элементам на стороне сервера. попробуйте document.querySelector()

http://jsfiddle.net/ZhGX7/

<input type="text" id="abc_123_MyDiv" value="firstValue" /> 

<script> 

var input = document.querySelector("input[id*=MyDiv]"); 

input.value="Updated Value" 
</script> 
+0

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

0

Я нашел решение here.

Трюк заключается в том, чтобы установить внутреннийHTML расширения ExtenderContentEditable div в HTMLEditorExtender, а не пытаться напрямую установить значение текстового поля. Стоит отметить, что установка innerHTML также устанавливает значение, поэтому вы можете прочитать TextBox.value и получить то, что вы положили.

Благодарим за помощь.

Смежные вопросы