2012-01-28 40 views
0

我的目標是讓用戶填寫一個表單並使用JavaScript將表單發佈到兩個位置,並且爲此創建了this fiddle單擊一次,提交表單時出錯

  1. 有一種形式,其上有一個input[type='submit']按鈕。
  2. 當用戶提交表單時,jQuery攔截表單,設置一個標記,並通過AJAX將其提交給備用位置。
  3. 成功後,AJAX回調觸發表單再次提交。 JS注意到(2)中設置的標誌並允許提交自然發生。

問題是第二次提交從未發生過。如果我再次單擊該按鈕,表單將執行完整的POST,以便告訴我邏輯是正確的。瀏覽器每次用戶操作提交表單的次數是否有限制?爲什麼這不起作用?

+0

從邏輯上講,我會說是的,因爲這將允許惡意網站兩次收你爲你購買(例如)的產物。瀏覽器通常會向用戶發送確認信息,詢問他是否要刷新頁面,即使POST請求已發送。 – 2012-01-28 21:24:00

+0

您可能想要在成功函數中觸發另一個事件(用於第二次嘗試),並且在您的單擊事件中,將e.preventDefault()放在其結尾處的click事件中(當然也可以將e添加爲參數函數)來防止整頁回發。但是如果沒有更多的細節和看到你的代碼,很難回答你的問題。 – MacGyver 2012-01-28 21:31:01

+0

@MacGyver我創建了一個小提琴演示我的代碼。 http://jsfiddle.net/jeffrod/M7Bfb/ – Jeff 2012-01-28 21:37:22

回答

2

您可以使用jQuery ajax()調用通過AJAX將表單提交給您的備選位置,並且在成功事件中您可以將其提交到其原始位置。

退房代碼:http://jsfiddle.net/M7Bfb/2/

+0

正是我在同一時間寫的:) – kontur 2012-01-28 21:30:02

+0

基本上不是我所做的,只是我使用了jQuery表單插件? – Jeff 2012-01-28 21:52:33