0

display:none を持つ div があります。ボタンを押すと、jqueryを使用して表示したい。表示されますが、1、2 秒で自動的に非表示になります。

私は専門家ではなく、間違っているところを見つけることができません。私を助けてください。

  <asp:Button runat="server" ID="btnCVUpload" Text="Upload" OnClientClick="CVConfirm()" />  <div id="divConfirmCV" style="border: dashed 2px black; background: gray; display:none;">
                A profile can have only one CV, uploading this CV will remove an existing CV. Click
                "Yes" to proceed
                <asp:Button runat="server" ID="btnCVYes" Text="Yes" />
                <asp:Button runat="server" ID="btnCVNo" OnClientClick="HideCVConfirm" Text="NO" />
            </div>




 function CVConfirm() {
            $("#divConfirmCV").css("display","block").show(1000)
        }
4

2 に答える 2

5

ページがサーバーにポストバックされているため、再び非表示になり、ボタンの初期状態が非表示になっている新しいページが再び表示されます。a) ページがポストバックされるまで div を表示しないようにしたい場合、div を asp:panel などにして、ボタンのクリック時に Visible に設定することができます。または b) asp:Button を使用したくないが<input type=button>、サーバーに再度アクセスせずに div を表示したいだけの場合は、サーバーにポストバックしない通常のボタンを使用します。あなたのコードを見ると、本当にオプションbを使いたいと思います。したがって、コードは次のようになります。

<input type=button ID="btnCVUpload" value="Upload" onclick="CVConfirm()" />

もちろん、jquery を使用しているので、実際に行う必要があります。

<input type=button ID="btnCVUpload" value="Upload" />

<script>
  $(function(){
    $("#btnCVUpload").click(function(){
       $("#divConfirmCV").css("display","block").show(1000);
    });
  });
</script>
于 2013-01-08T04:23:15.330 に答える
1

このようにjQueryを書きたい

$(document).ready(function(){
    $("#<%=btnCVUpload.ClientID%>").click(function(event){
        event.preventDefault();
        $("#divConfirmCV").css("display","block").show(1000);
    });
});

preventDefault は、クリックなどの特定のイベントで要素のデフォルトの動作を防ぐのに役立ちます。したがって、許可するまでポストバックは発生しません:)

于 2013-01-08T04:30:23.493 に答える