如何在提交活动中提出“已完成”事件?

时间:2011-05-27 08:56:59

标签: jquery asp.net-mvc

在完成后调用之后调用控制器操作,而不是在$(this).submit()之后调用。 请参阅下面的代码。 如何在不使用ajax来提升已完成的回调之前触发操作?

控制器:


public ActionResult MyFunction(FormCollection data){
//this should trigger before calling the CompletedEvent
}

javascript



var flag = false;

$(form).submit(function(){

        if(!flag){

        //raise start event
        startedCallback.call();

        flag = true;
        $(this).submit();

       //raise completed event
        completedCallback.call();

}

});


2 个答案:

答案 0 :(得分:8)

如果您不想使用ajax,则在提交后无法可靠地调用某些内容 - 表单的处理已完成。如果您想要回复,则必须使用ajax。

如果您想在表单提交之前调用您的函数 - 再次..您必须使用某种形式的ajax。

请参阅 How do I capture response of form.submit

如果你真的需要控制这样的事件 - 你需要ajax或iframe hacks。对不起:)

答案 1 :(得分:0)

也许您的操作可以返回url var,例如?status=submitted

然后检查您的javascript是否存在该var,如果存在,则触发您的completedCallback

顺便说一句,如果您不希望在false提交表单,则应在$(form).submit(function(){return false;});中返回flag == true