gpt4 book ai didi

javascript - 将函数传递给 submitHandler 回调

转载 作者:行者123 更新时间:2023-11-30 10:05:55 25 4
gpt4 key购买 nike

我对多个页面使用mainSubmitHandler,如果需要,我愿意将其定义为全局变量。但是,mainSubmitHandler 需要进行一些调整,我使用 subSubmitHandler 来处理这个问题。不是将 subSubmitHandler 作为另一个全局变量,我如何将它作为一个 agrument 传递给 mainSubmitHandler

var mainSubmitHandler=function(form) {
//do a bunch of stuff
subSubmitHandler(form);
};

var subSubmitHandler=function(form) {
//do some stuff
};

// uses jQuery validation plugin
var validator=$("#form1").validate({
rules: {},
messages: {},
submitHandler: mainSubmitHandler
});

最佳答案

您可以使用 bind在这里。

bind 环绕一个函数引用,允许您将作用域和变量传递给目标函数:

function.bind(thisArg[, arg1[, arg2[, ...]]])

参数:

  • thisArg:调用绑定(bind)函数时作为 this 参数传递给目标函数的值。如果使用 new 运算符构造绑定(bind)函数,则忽略该值。
  • arg1, arg2, ...调用目标函数时要添加到提供给绑定(bind)函数的参数的参数。

来源 MDN

var mainSubmitHandler=function(form, callback) {
//do a bunch of stuff
if (typeof(callBack) != "undefined" && Object.prototype.toString.call(callBack) === "[object Function]") //sanity check. Check if callback is truly a function and exists.
{
callback(form);
}
};

var subSubmitHandler=function(form) {
//do some stuff
};

// uses jQuery validation plugin
var validator=$("#form1").validate({
rules: {},
messages: {},
submitHandler: mainSubmitHandler.bind(null, form, subSubmitHandler); //first argument is set to null. This passes the this argument of the targeted function.
});

关于javascript - 将函数传递给 submitHandler 回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29182566/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com