2011-07-05 11 views
3

ページが読み込まれた後に非常に高速にボタンをクリックすると、ポストバックは発生しません。次の例では、この(あなたが二回と非常に高速なボタンをクリックする必要があり)を示しています。submitTextasp.netボタンは繰り返しクリックされたときにポストバックしません。

<form id="form1" runat="server"> 
    <div> 
     <span id="submitText"></span> 
     <br /> 
     <asp:Button ID="btnSubmitTest" runat="server" Text="Button" 
     OnClientClick="document.getElementById('submitText').innerText='you should not see this after postback';" /> 
    </div> 
</form> 

を、ボタンセットの焼成前に、ポストバック後には表示されません。しかし、ボタンをすばやくクリックすると、イベントは発生しません。

私はこのページが完全にロードされていないと思います。それとも他の理由がありますか?これはどうやって扱いますか?

+1

解決策の1つは、ボタンを無効にして$(document).readyで有効にすることです。その時点で、DOMは完全にロードされます。 –

答えて

0

あなたはポストバックですべてのjavascript domアップデートを失うでしょう。あなたが説明したことが正しく聞こえてきました...クライアントのクリックイベントfire がちょうどの前にポストバックされ、domがリセットされています。

同じ練習をテキストボックスに入力してみてください。そのインスタンスでは、テキストボックスがビューステートに依存するため、値は維持されます。あなたはrunat = "server"をスパンに置くことができますが、htmlgenericcontrolsが自動的にviewstateを利用するとは思わないので、viewstateに値を手動で割り当てる必要があると思います。

関連する問題