submit()函数有回调吗?

时间:2010-06-17 19:18:30

标签: javascript jquery webkit callback submit

我有这个代码,以及一个提交到框架的文件上传表单:

setMyCookie('name','value_1');
$('.myform').submit();
setMyCookie('name','value_2');

问题:Webkit浏览器似乎在表单被提交之前用'value_2'更新'MyCookie',或者在它被提交的确切时刻更新,因此错误的cookie值随之发送。 我希望在提交表单后立即将cookie值更改为“value_2”,以便cookie可以用于其他请求。

以下代码工作正常,但我不认为使用timeout()是最好的解决方案。也许有另一种方法来解决这个问题?

setMyCookie('name','value_1');
$('.myform').submit();
setTimeout(function(){setMyCookie('name',value_2);},100);

感谢。

3 个答案:

答案 0 :(得分:3)

没有。提交表单会加载一个全新的页面,通常会结束脚本的当前执行上下文。

例外情况是,如果您将表单提交到框架,在这种情况下会触发onload事件。

答案 1 :(得分:0)

是的,你可以。 See here.

答案 2 :(得分:0)

您必须使用AJAX来实现这一目标。否则,表单将被提交,并且您的函数将要执行的其余JavaScript将被忽略,因为页面已重新加载。