2012-08-22 129 views
0

我希望能够将表单提交到其他URL(这不是问题) - 并且在提交后将表单操作设置为原来的状态。jQuery:提交后重置表单操作

$(".submitForExport").click(function() { 

    // Saves current form action 
    var originalAction = $(this).parents('form').attr('action'); 

    // Sets form action to export URL, submits and resets form action to previous action 
    $(this).parents('form').attr('action', $('#alternativeUrl').val()); 
    $(this).parents('form').submit(); 
    $(this).parents('form').attr('action', originalAction); 
}); 

然而,上述代码提交表单到原来的动作。这似乎是提交操作最后触发的?

如果最后一行被注释掉,表单会按照预期提交到替代URL--但表单操作现在偏离了课程设置的替代URL。

有没有一种方法,我后提交可以设置行动原来是什么?还是有更好的方法来做到这一点?也许阿贾克斯?

回答

1

尝试在函数结尾处添加return false;。我猜你的点击事件是抓住提交按钮。所以,你的表单被提交两次:一个用你手动触发的.submit()方法,另一个用在函数的末尾,因为按钮的type="submit"

+1

谢谢!这就是诀窍!应该自己尝试过 - 但我认为这会压制表单完全提交。 – morsor

+0

太棒了!不要忘记[接受这个答案](http://meta.stackexchange.com/a/5235/186921)':)' – sp00m