用 OnClienClick 讓Validation 驗證失效 ?!
我一開始一直以為是因為Button 的 OnClienClick 讓驗證失效了
在找答案的當中,一直往這個方向去找
後來看到有個人的提問
My problem is it seems OnClientClick is fired before ValidationGroup since the JS function called in my OnClientClick Closes my window.
So the window closes and the "*" (error message) is only displayed when i reopen my window.
I need my ValidationGroup to be checked first! Thanks in advance for your help
https://stackoverflow.com/questions/9718698/onclientclick-fired-before-validationgroup
我還不確定到底對不對,但是至少我把我的Validation的 視窗提示改成文字提示( ShowSummary = 'True' ) 之後,是正常的,驗證還是有正常執行,也有show出驗證不過的說明。
這可以說明其實沒有讓驗證整個失效,是在MessageBox 的地方出錯了。
總之
目前找了很多文章都是這個解法
將Button的OnClientClick修改一下,變成驗證在confirm之前
使用Page_ClientValidate()
//執行此page所有的驗證
OnClientClick=" if(Page_ClientValidate()) return confirm('確定送出? '); "
如果有ValidationGroup 的話,就修改成
OnClientClick=" if(Page_ClientValidate('ValidationGroup')) return confirm('確定送出? '); "
在Page_ClientValidate()中加入[驗證群組] 就可以了,