1

我有一个带有 HTMLEditorExtender 的 asp.net 文本框(ID = "HTMLTextBox_Comments"):

<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.innerHTMLMyControl.text但这些似乎都不起作用。

如何在 TextBox 中显示 TextBox 的值?

提前致谢!

编辑 我发现这篇文章似乎表明 .value 是我应该用来设置此 TextBox 的文本的,但它只是没有显示出来。我错过了什么?

4

2 回答 2

0

WebForms 为您的服务器端元素添加了一个疯狂的 id。尝试 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>
于 2012-11-07T18:55:39.823 回答
0

我在这里找到了解决方案。

诀窍是在HTMLEditorExtender中设置 ExtenderContentEditable div 的 innerHTML,而不是尝试直接设置文本框的值。值得注意的是,设置 innerHTML 也会设置值,因此您可以读取 TextBox.value 并获取您输入的内容。

谢谢您的帮助。

于 2012-11-08T17:26:11.633 回答