2013-11-27 142 views
1

數據錄入人員將電子郵件地址放入表單中,如果每次粘貼地址時提交表單,以便爲下一次粘貼做好準備,這將會很有幫助。 setTimeout中的其他代碼也可以正常工作 - 只是不提交表單。在此先感謝您的幫助。jQuery:粘貼提交表格

$("#email").on("paste", function(){ 
    setTimeout(function() { 
     $("#cancelemail").submit(); 
    }, 0); 
}); 


<form action="done.php" method="post" id="cancelemail"> 

Address to be removed: <input id="email" name="email" type="text" /> 

<input type="submit" name="submit" value="Remove"> 

</form> 
+0

@JPod jQuery有一個 '粘貼' 事件 –

+1

而不是用'貼 - >瀏覽器提交 - >重裝page'邏輯,你會覺得它更友好使用這個邏輯? '粘貼 - > AJAX提交 - >清除輸入 - >保持對輸入的重點 - >在輸入框下方顯示小的成功/錯誤消息' – MonkeyZeus

+0

設置超時0是否可能太快?如果將設置的超時時間縮短到一秒,會發生什麼情況? – jonnybot

回答

2

真奇怪,觸發提交似乎並沒有爲我工作,除非我刪除從HTML提交按鈕,但觸發提交按鈕實際上並?

$("#email").on("paste", function() { 
    setTimeout(function() { 
     $('[name=submit]').trigger('click') 
    }); 
}); 

Fiddle with button, triggering submit -> not working ?
Fiddle without button, triggering submit -> works
Fiddle with button, triggering button click -> works

+0

http://stackoverflow.com/a/12541054/1414562解釋它 –

+0

@ A.沃爾夫 - 感謝您的鏈接,現在我已經讀了,我意識到我已經知道,但只是不能我的生活找出它爲什麼不會屈服,現在看起來很明顯。這是我從來沒有做過的那些錯誤之一,而且你不會經常看到它,但是命名一個元素「submit」確實會覆蓋附加在表單上的本地提交函數。 – adeneo

+0

@ A.Wolff:您的評論與我的原始代碼完全相同。感謝您帶領我們在那裏。 –