2011-07-04 61 views
0

我有一個表單的頁面。有一個輸入控件我使用參數email的url值填充。爲什麼這個jQuery在Chrome中不起作用?

所以,當加載頁面時,我會自動提交表單郵件黑猩猩,像這樣:

<script type="text/javascript"> 
     $(document).ready(function() { 
      $('#mc-embedded-subscribe-form').submit(); 
      if ($("#previousUrl").val().indexOf('?') != -1) { 
       window.location.replace($("#previousUrl").val() + '&emailRegistered=true#newsletterAnchor'); 
      } 
      else { 
       window.location.replace($("#previousUrl").val() + '?emailRegistered=true#newsletterAnchor'); 
      } 
     }); 
    </script> 

,並提交後,我做了重定向到前網址。

那麼,這一切作品在Firefox罰款(確認彈出窗口也提交表單和主頁被重定向回一前一後開了。

我不明白爲什麼這個做在Chrome不行的。我的意思是,莫名其妙POST操作還沒有完成,因爲沒有其他彈出打開(altought此頁面重定向回到最初的一)。

你能建議我的方式做當確定POST已完成時重定向?(以這種方式我認爲將在Chrome工作太)...

UPDATE

表的目標是「_blank」,以便從郵件黑猩猩腳本(這就是我做的POST)打開一個確認彈出窗口。

更新2

與阿賈克斯,但由於某種原因,它不會做任何事情嘗試...

$(document).ready(function() { 
      jQuery.ajax({ 
       url: $('#mc-embedded-subscribe-form').attr('action'), 
       data: $('#mc-embedded-subscribe-form').serialize(), 
       type: 'POST', 
       success: function() { 
        if ($("#previousUrl").val().indexOf('?') != -1) { 
         window.location.replace($("#previousUrl").val() + '&emailRegistered=true#newsletterAnchor'); 
        } 
        else { 
         window.location.replace($("#previousUrl").val() + '?emailRegistered=true#newsletterAnchor'); 
        } 
       } 
      }); 
      return false; 
    }); 
+0

爲什麼你的提交方法不是函數體中的最後一行... –

+0

因爲流程是:點擊頁面1 - 轉到頁面2(這裏是表單) - POST這個表單 - 回到頁面1 –

+0

所以我認爲在提交重定向時,不應執行以下代碼。 unles你有事件附加提交。 –

回答

1

你試圖在提交一個表單,然後重定向到另一頁同時?你不能那樣做。你一次只能做出一個請求(沒有AJAX,就是這樣)。

+0

是的,,,這就是我想也......問題是:如果我開始做POST,我如何在POST完成後自動重定向? –

+1

@Cristian:爲什麼不讓表單目標執行重定向?表單提交後,這第一頁是_gone_。 –

+0

好ideea ...嘗試了它(請參閱我的更新),但仍然有問題...該鏈接是肯定的,因爲使用js重定向與該鏈接的作品。 –

相關問題