我有一个asp.net 主页,其中加载了一个ascx 控件。
在主页上,我有一个 textarea 元素声明为
<asp:TextBox ID="description" runat="server" Rows="8" Columns="35" TextMode="MultiLine" class="smth" title="A Title"></asp:TextBox>
呈现为
<textarea name="description" rows="8" cols="35" id="description" class="smth" title="A Title"></textarea>
在 ascx 控件上,我声明了一个类似的文本框
<textarea id="descriptionMap" rows="5" cols="25" class="smth" title="A Title"></textarea>
呈现相同的效果。
在主页上,我可以访问第一个文本框(包含在主页上)的内容
$('#' + <%=description.ClientID %>).val()
但我无法访问 ascx 控件中包含的文本框的内容
$('#descriptionMap').val()
但是,如果我将 ascx 文件中的文本框声明为
<textarea id="descriptionMap">some static content</textbox>
我可以访问它,但如果我自己在文本框中写一些东西,什么也不会发生。这让我发疯了。有什么建议么?我使用的是 IE 8,这可能是问题吗?
编辑。一个简化的例子。这是 ascx 控件的呈现方式:
<textarea id="descriptionMap" rows="5" cols="25" class="smth" title="A Title"></textarea>
<input type="submit" id="sendMap" value="Send" onclick="sendTest();" />
<script type="text/javascript">
function sendTest() {
alert(document.getElementById('descriptionMap').value);
}</script>
警报对话框显示为空。问题一定与以某种方式使用 ascx 控件有关。