Javascript 如何将第二个函数绑定到jQuery验证提交程序

Javascript 如何将第二个函数绑定到jQuery验证提交程序,javascript,jquery,validation,jquery-validate,Javascript,Jquery,Validation,Jquery Validate,如何向另一个脚本中设置的jQuery验证提交器添加附加功能?我无法修改最初定义submitHandler的源JavaScript。相反,我需要从运行的后续脚本中添加一些附加功能。下面是.js文件的一些缩小的伪代码,该文件首先定义submitHandler——我不能直接修改它: $("#frmReg").validate({ invalidHandler: function(e, validator) { //code here ... not relevant }, submit

如何向另一个脚本中设置的jQuery验证提交器添加附加功能?我无法修改最初定义submitHandler的源JavaScript。相反,我需要从运行的后续脚本中添加一些附加功能。下面是.js文件的一些缩小的伪代码,该文件首先定义submitHandler——我不能直接修改它:

$("#frmReg").validate({
    invalidHandler: function(e, validator) { //code here ... not relevant },
    submitHandler: function() {
        window.onbeforeunload = null;
        $('#myForm')[0].submit();             
    },
    rules: { firstname: { required: true } },
    messages: { firstname: { required: 'First name is required' } }
});

基本上,我想将第二个函数绑定到现有submitHander。

我浏览了源代码,我认为这应该可以:

var validatorInstance = $("#frmReg").validate(), //Call this AFTER the initial registration,
    submitHandler = validatorInstance.settings.submitHandler;

validatorInstance.settings.submitHandler = function(){
    //Do your custom stuff here
    console.log(true);
    return submitHandler.apply(this,arguments); //forward to the old handler
};

这看起来很有希望。我正在玩它…到目前为止,在自定义内容和控制台日志消息之后,它正在记录此错误并提交表单,而不运行预先存在的处理程序函数:submitHandler是undefined@Shawn你能提供一个JSFIDLE吗。您使用的是最新版本吗?它基于以下源代码:看起来页面正在使用jquery.validate-1.8.1.min.js。我将了解如何添加JSFIDLE。@Shawn 1.8.1在查看其代码后,在这方面应该是相同的。。您确定要在第一个
.validate()之后调用
var validatorInstance=$(“#frmReg”).validate()
console.log(validatorInstance)
提供了什么?