2010-10-12 148 views
0

我想在使用ASP.NET MVC2客户端验证更新客户端错误时触发一些自定义代码。我已经找到了这个功能,我想挂接到:ASP.NET MVC2 - 挂钩到客户端验证

Sys.Mvc.FormContext.prototype = { 

    // ... 

    _displayError: function Sys_Mvc_FormContext$_displayError() { 
     if (this._validationSummaryElement) { 
      if (this._validationSummaryULElement) { 
       Sys.Mvc._validationUtil.removeAllChildren(this._validationSummaryULElement); 
       for (var i = 0; i < this._errors.length; i++) { 
        var liElement = document.createElement('li'); 
        Sys.Mvc._validationUtil.setInnerText(liElement, this._errors[i]); 
        this._validationSummaryULElement.appendChild(liElement); 
       } 
      } 
      Sys.UI.DomElement.removeCssClass(this._validationSummaryElement, Sys.Mvc.FormContext._validationSummaryValidCss); 
      Sys.UI.DomElement.addCssClass(this._validationSummaryElement, Sys.Mvc.FormContext._validationSummaryErrorCss); 
     } 
    }, 

    // ... 

}  

我如何可以覆盖该功能,使得我的代码可以

  • 调用原函数
  • 然后做一些其他的工作

回答

0

找到它。

<script type="text/javascript"> 
    $(function() { 
     var old_displayError = Sys.Mvc.FormContext.prototype._displayError; 
     Sys.Mvc.FormContext.prototype._displayError = function() { 
      old_displayError.apply(this); 
      // do other stuff here 
     } 
    }); 
</script> 

我不习惯重写原型函数,所以我被困了一下。

+0

还有什么你必须做的才能让这个工作?我试图做同样的事情,当我的客户端验证触发时,上面的代码似乎并没有被调用。 – Anthony 2010-12-09 20:45:50