星期六, 6月 12, 2010

[Asp.Net ] Javascript 觸發 .NET驗證控制項 的方法



剛好需要用到.Net驗證控制項來處理欄位驗證的問題,
但是又動態的再按鈕上加上一些js效果(如遮罩),
卻讓按鈕先postback到後端,才顯示.Net驗證控制項的效果,
所以需要使用js先來觸發.Net驗證控制項,
找到這位仁兄提供的解答
 Reference:[ASP.NET] Javascript偵測.NET驗證控制項的方法


在Script中加入funcrion Page_ClientValidate_AllPass(名稱可換)
參數validationGroup.NET驗證控制項對應的群組名稱 (string型態)
function Page_ClientValidate_AllPass(validationGroup) {
   if (typeof(Page_Validators) == "undefined") { return true; }
   var i;
   for (i = 0; i < Page_Validators.length; i++)
   {
      var val = Page_Validators[i];
      val.isvalid = true;
      if ((typeof(val.enabled) == "undefined" || val.enabled != false) && IsValidationGroupMatch(val, validationGroup))
   {
         if (typeof(val.evaluationfunction) == "function")
   {
            val.isvalid = val.evaluationfunction(val);
         }
      }
   }
   ValidatorUpdateIsValid();
   return Page_IsValid;  
}
後台按鈕事件範例如下,表示通過「Save」的驗證控制項時,會觸發if的{...}事件
this.saveButton.Attributes["onclick"] += "if(Page_ClientValidate_AllPass('Save')) { ... }";

沒有留言:

張貼留言

留個話吧:)