内部にascxコントロールをロードするasp.netメインページがあります。
メインページには、次のように宣言されたテキストエリア要素があります
<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 コントロールを使用することに関連している必要があります。