代码之家  ›  专栏  ›  技术社区  ›  Chris

ASP.NET MVC2-钩入客户端验证

  •  0
  • Chris  · 技术社区  · 14 年前

    我想在使用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);
            }
        },
    
        // ...
    
    }    
    

    如何重写此函数,以便我的代码可以

    • 调用原始函数
    • 那就做些别的工作吧
    1 回复  |  直到 14 年前
        1
  •  0
  •   Chris    14 年前

    找到它了。

    <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>
    

    我不习惯重写原型函数,所以有一段时间我遇到了困难。