其實若要按鈕防止使用者按兩次最快方式就是按下去後,設定按鈕的disabled = true
(按鈕需要為HTML Button,並設定為以伺服器控制項執行)
但問題來了...加上驗證控制項後,若出現錯誤提示,按鈕也會disable..
也就是..我無法在驗證控制項觸發後,再去執行其他script




我去觀察加上驗證控制項後,那個HTML Button 的click事件,出現
onclick="if (typeof(Page_ClientValidate) == 'function') Page_ClientValidate(''); __doPostBack('ctl00$ContentPlaceHolder1$Button1','')"


__doPostBack('ctl00$ContentPlaceHolder1$Button1','') 是讓HTML Button發生PostBack的函式
Page_ClientValidate('') 可以回傳是否驗證通過(驗證不通過為false 通過為true)


這樣就夠我們去動手腳了...
首先將按鈕的causesvalidation設為false..讓他不自動產生if (typeof(Page_ClientValidate) == 'function') Page_ClientValidate('');
他不自動產生,所以我們手動自己加
在page_load事件裡
btnNext.Attributes("onclick") = "if (typeof(Page_ClientValidate) == 'function') if(Page_ClientValidate('')==true) this.disabled = true;"
這樣就可以有驗證控制項+防止按鈕按兩次 的功能了


同理..如果要在驗證控制項驗證完要加上其他的script..也可在這直接加...


nelman 發表在 痞客邦 PIXNET 留言(0) 人氣()