使用してDataListコントロールにasp.netのテキストボックスの複数行モードのIDを取得する方法:私はデータリスト内課金と配信アドレスを持つ2つのセクションを持っているjqueryの
<asp:DataList ID="dldirectory" runat="server" Width="100%"
RepeatColumns="1" EnableViewState="False" DataKeyField="Id" >
<ItemTemplate>
<asp:TextBox ID="txtBillingAddress" runat="server" Text='<%# Eval("BillingFullAddress") %>' TextMode="MultiLine" Width="200" Height="150"></asp:TextBox>
<asp:CheckBox ID="chkCopy" runat="server" Text="Same as Billing Address." />
Address:
<asp:TextBox ID="txtDeliveryAddress" runat="server" Text='<%# Eval("DeliveryFullAddress") %>' TextMode="MultiLine" Width="200" Height="150"></asp:TextBox>
</ItemTemplate>
<ItemStyle Width="50%" />
</asp:DataList>
<script type="text/javascript">
$(document).ready(function() {
$('input:checkbox[id*=chkCopy]').change(function() {
if ($(this).is(':checked')) {$('input:text[id*=txtDeliveryAddress]').val($('input:text[id*=txtBillingAddress]').val()); }
});
});
上記のスクリプトが正常に動作した場合にのみ、テキストボックスモードがsingleに設定されていて、チェックボックスがオンのときに配送先住所に表示されるテキストがtxtBillingAddressに貼り付けられますが、textmodeが複数行に設定されていると、テキストエリアが異なる方法でレンダリングされるためjqueryが失敗します。
asp.netテキストボックスで正確に同じfeautureを得る方法は、マルチラインモードに設定します。
おかげ
更新されたHTML:
<textarea name="ctl00$MainContent$CustomersDefaultPaging$ctl00$txtBillingAddress" rows="2" cols="20" id="ctl00_MainContent_CustomersDefaultPaging_ctl00_txtBillingAddress" style="height:150px;width:200px;"></textarea>
Javascriptを書くとき、それはサーバーサイドコードについて考えることは無意味です。レンダリングされたHTMLを見て、あなたのJavascriptを書いてください。 – lonesomeday