Javascript:将参数传递给callback调用的方法

时间:2011-04-19 09:51:57

标签: javascript asp.net ajax callback

所以我的表单上有一个保存按钮,它有一个回调功能,在尝试保存表单之前检查用户是否仍然经过身份验证,然后这个回调调用验证表单的实际保存方法如果我们经过身份验证,则保存它,如果不是,则弹出登录框。我的问题是这个save方法需要接受回调的结果(可以是true或false)和一些要验证的额外参数。

function saveButton_Click(sender, eventArgs, var1, var2, var3)
{
    var authenticated = myCallbackFunction(performSave);
}

function performSave(authenticated, var1, var2, var3)
{
    if (authenticated)
    {
        //do some validation and save
    }
    else
    {
        showLoginWindow();
    }
}

这是我到目前为止所获得的代码,它成功地关闭并执行回调并将结果传递给performSave,但显然它没有传递我的额外变量,所以我的所有验证都失败了。我尝试了以下内容:

var authenticated = myCallbackFunction(performSave(authenticated, var1, var2, var3));

但这似乎只会导致回调被跳过并进行身份验证,var1,var2等总是以未定义的形式出现。那么,我怎样才能成功地将变量传递给performSave方法以及我的回调结果?

2 个答案:

答案 0 :(得分:1)

您可以使用本地功能范围实现此目的。

function saveButton_Click(sender, eventArgs, var1, var2, var3)
{
    myCallbackFunction(function(authenticated){
        performSave(authenticated, var1, var2, var3);
    });
}

答案 1 :(得分:-1)

尝试将声明和赋值分开,如下所示:

var authenticated = null;
authenticated = myCallbackFunction(performSave(authenticated, var1, var2, var3));