如何在提交活动中提出“已完成”事件?
在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
。