これは簡単に聞こえますが、私は午前中ずっと苦労してきました。
asp.Net ページと対応するコード ビハインド ページがあります。ユーザーが新しいパスワードを入力すると、ページの背後にあるコードがそれが問題ないかどうかを確認します (十分な長さ、許可されていない文字を確認するための正規表現など)。パスワードが OK の場合、コード ビハインドは SQL クエリを実行してデータベースを更新します。
クエリが成功した場合は、パスワード入力の div を非表示にして、パスワードの作成に成功した div を表示して、ユーザーに詳細な指示を与えたいと考えています。私はこれを、jQuery を使用して PHP で簡単に実行してきました。
私の問題: 今説明した作業はすべてサーバー側で行われます。ClientScriptManager (RegisterStartupScript) を使用して、適切な jQuery スクリプトをクライアント側に送り返すことができます。素晴らしいですが、サーバーへのコールバックによってページが更新されるため、ページが更新されて元の外観に戻ります。よく見ると、div が意図したとおりに表示または非表示になっていることがわかりますが、ほんの一瞬で元の状態に戻ります。これは、コールバックがページを更新しているためだと思います。
サーバーへの呼び出しが実行されているときに、コード ビハインド ページから DOM 要素を表示/非表示にすることは可能ですか? どんな助けでも大歓迎です。
編集
問題なのは asp:button コントロールそのものです。コード ビハインド ページをまったく使用しない次のコードでも同じ動作が得られます。asp:button コントロールを通常の HTML 入力コントロールに置き換えると、正常に動作します。
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
<script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
<script type="text/javascript">
$('document').ready(function () {
$('.MyButton').click(function () {
$('#MyTable').toggle();
})
})
</script>
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<asp:Button ID="Button1" runat="server" Text="Button" class="MyButton" />
<table id="MyTable" >
<tr>
<td>This</td>
<td>is</td>
</tr>
</table>
</asp:Content>