asp.net 防止二次提交 以及UseSubmitBehavior屬性-轉
阿新 • • 發佈:2018-10-04
web 復制代碼 script 為什麽 pan 一個 cli 並且 註意
頁面上有一個按鈕,點擊之後提交表單,如果什麽都不管的話,用戶可以在服務器響應完成之前再次點擊,這樣就出現了二次提交,後果可大可小。
那麽我們應該防止二次點擊,就要在用戶點第一次之後馬上Disable這個按鈕。
具體:
按鈕代碼:
<asp:Button ID="Button1" runat="server" UseSubmitBehavior="false"
OnClick="Button1_Click" Text="Button" OnClientClick="DisableButton(this)" />
Javascript:
<script> function DisableButton(b) { b.disabled = true; b.value = ‘Submitting‘; } </script>
然後在後臺代碼裏的Button1_Click事件裏再做你想做的事情。
我們可以註意到這裏是用OnClientClick的屬性來調用Javascript從而實現Disable按鈕的。開始的時候,我沒有加入UseSubmitBehavior屬性,就變成了點擊按鈕只執行客戶端的代碼,服務器端代碼就不執行了。為了解決這個問題,加入了UseSubmitBehavior屬性,並且要把他的值設為false。
為什麽要設為false呢?簡單來說,false表示不用客戶端方法提交,則從服務器端提交,也就是執行OnClick的事件。反之,如果是true,則從客戶端提交,忽略服務器端的事件。具體請看MSDN:http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.button.usesubmitbehavior.aspx
asp.net 防止二次提交 以及UseSubmitBehavior屬性-轉