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

在completedCallback之后不在$(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(); } });
var flag = false; $(form).submit(function(){ if(!flag){ //raise start event startedCallback.call(); flag = true; $(this).submit(); //raise completed event completedCallback.call(); } }); 

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

如果你想在表单提交之前调用你的函数 – 再次..你必须使用某种forms的ajax。

请参见如何捕获form.submit的响应

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

也许你的行动可以返回一个url var,比如?status=submitted

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

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