1 つのユーザー コントロール (user.ascx と呼びます) と 2 つのボタンを含む 1 つの updatepanel を持つ 1 つのページがあります。
私の user.ascx には、他のコントロールを無効/有効にできるチェックボックスがいくつかあります。私はuser.ascxに追加されたjavascriptでそれをやっていますが、updatepanelが更新するとき(これらの2つのボタンのうちの1つをクリックした後の非同期ポストバック)、チェックボックス(クリックまたは変更)のjavascriptイベントは発生しません。関数 pageLoad(sender,args) で $().ready() をラップするだけで完璧に機能しますが、そのページによるとhttp://blog.dreamlabsolutions.com/post/2009/03/25/jQuery- live-and-ASPNET-Ajax-asynchronous-postback.aspx live() 関数を使用することをお勧めします。
残念ながら、.click()、.change()、.bind()、.live()、.on() などのイベントをバインドするすべての利用可能な方法は、ポストバック後に機能し、非同期ポストバック後には機能しません。
動作しないコードのサンプル:
<script type="text/javascript">
$().ready(function () {
var ddlAge= $("#<%= ddlAge.ClientID %>");
var cboxFirst= $("#<%= cboxFirst.ClientID %>");
var cboxSecond= $("#<%= cboxSecond.ClientID %>");
$(document).on("change", cboxFirst, function () {
if (cboxFirst.is(":checked")) {
ddlAge.attr("disabled", "disabled");
ddlAge.val("");
}
else { ddlAge.removeAttr("disabled"); }
});
cboxSecond.live('change',function () {
if (cboxSecond.is(":checked")) {
ddlAge.attr("disabled", "disabled");
ddlAge.val("");
}
else { ddlAge.removeAttr("disabled"); }
});
});
</script>
両方のチェックボックスは、ポストバック後にのみ機能します。私は何を間違っている可能性がありますか? 誰もそのような問題を抱えていますか?Jquery 1.7.1 を使用していますが、js エラーは発生しません。
どんな助けにも感謝します。