2013-05-20 48 views
1

根據管理層的要求,我需要打開用戶的電子郵件客戶端並通過單擊按鈕提交表單。我最初有同時打開mailto並提交表格

window.location = "mailto:[email protected]"; 

作爲提交輸入的點擊事件的回調,但這是行不通的。它似乎很快提交表單。

使用window.open確實有效,但它會創建一個不合需要的空白窗口。

我也有想法,預防和延緩表單提交在

window.location = "mailto:[email protected]"; 
setTimeout(function() { 
    $(this).closest('form').trigger('submit'); 
}.bind(this), 1000); 
e.preventDefault(); 

這也適用,但它似乎粗略給我。

有什麼辦法可以同時提交表單並打開郵件鏈接?

+0

假設你正在試圖提交表單(這將導致回傳),有幾個合理的方案...... 1)改變你的提交功能,導致成功 您的預期行爲的AJAX方法2)創建一個隱藏的鏈接,您觸發點擊與href =「mailto:[email protected]」.. –

+0

@BrettWeber這是一個可能的解決方案,但它仍然會導致延遲(他們將不得不等待請求完成)。我寧願讓瀏覽器顯示錶單提交 –

+0

的可見延遲,以免過早添加該評論,編輯後顯示另一個選項。作爲事後的想法,你有沒有嘗試通過將提交按鈕包裝到具有mailto href的鏈接中來更改html? –

回答

2

我不知道這是否可以工作,但我相信稍微調整一下它應該可以工作並獲得所期望的結果(這太長了,以至於無法放入評論中,如果它不會我會很樂意刪除它!);表單提交時

$("form").on("submit", function() { 
    window.onbeforeunload = function() { 
     window.location = "mailto:[email protected]"; 
    }; 
}); 

簡單地說,設置onbeforeunload事件改變位置的郵寄地址。我認爲這樣做只會讓郵件在提交表單時打開,而不是在用戶剛剛導航時打開。

我不知道這是否會起作用,或者它有多麼可笑,但我認爲我會投入我的兩分錢!

UPDATE

On form submit, mailto from javascript with form values

這似乎工作和其他人覈實。

$("input[type=submit]").click(function(){ 
    window.location.href = "mailto:[email protected]"; 
}); 
+0

看起來像一個偉大的嘗試,但它不適合我。我沒有客戶已經打開,所以也許這有所作爲。我將在明天對此進行更多測試 –

+0

如果我得到解決方案,我會再試一次,試着讓它爲您工作。 – GriffLab