2012-08-22 91 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