Javascript 如何将第二个函数绑定到jQuery验证提交程序
如何向另一个脚本中设置的jQuery验证提交器添加附加功能?我无法修改最初定义submitHandler的源JavaScript。相反,我需要从运行的后续脚本中添加一些附加功能。下面是.js文件的一些缩小的伪代码,该文件首先定义submitHandler——我不能直接修改它: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
$("#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)
提供了什么?