2011-11-08 56 views
88

我有一個表單,它有一個提交表單的按鈕。在提交之前我需要做些事情。我試着在該按鈕上執行onClick,但它在提交後發生。如何提交之前做些什麼?

我不能共享代碼,但是,一般來說,我應該怎麼做jQuery或JS來處理這個問題?

+6

*咳嗽* [的jsfiddle示例](http://jsfiddle.net/XVAPa/)* *咳嗽 –

+1

@布拉德克里斯蒂如果我只能接受評論作爲答案。感謝非常有幫助。 – Jimmy

+1

當stackover關閉一個問題時,我討厭它。你可以只提交表單前處理使用火以下時序以下事件你的行動: 1的onmouseover 2-的OnMouseMove 3- onmousedown事件 4-聚焦狀態 5- onmouseup 6-的onclick 7的onsubmit –

回答

138

如果你有一個形式,例如:

<form id="myform"> 
... 
</form> 

您可以使用下面的jQuery代碼做一些在提交表單前:

$('#myform').submit(function() { 
    // DO STUFF... 
    return true; // return false to cancel form action 
}); 
+1

我是在提交之前必須完成的使用循環的麻煩。有什麼建議麼? – Smilyan

+0

有什麼代碼可以看?不知道我明白這個問題。 –

+2

這是爲什麼包裹在一個空的函數調用中?如果沒有周圍的空函數,'submit'函數不能直接綁定到$('#form')'嗎?編輯:[文檔建議不需要周圍的函數調用](https://api.jquery.com/submit/#submit-eventData-handler)。 – eykanal

4

確保提交按鈕不是鍵入「提交」,使其成爲一個按鈕。然後使用onclick事件觸發一些JavaScript。在你發佈數據之前,你可以做任何你想做的事情。

+1

可以通過多種方式提交表單,例如在某些字段中按Enter鍵。綁定到一個可能不被點擊的按鈕上的點擊不是一個好主意。其他答案顯示瞭如何綁定* form *的'onsubmit',無論提交表單如何,它都會觸發。 – Jason

13

假設你有一個這樣的形式:

<form id="myForm" action="foo.php" method="post"> 
    <input type="text" value="" /> 
    <input type="submit" value="submit form" /> 

</form> 

您可以將onsubmit -event使用jQuery這樣的:

$('#myForm').submit(function() { 
    alert('Handler for .submit() called.'); 
    return false; 
}); 

如果return false形式將不會被後提交函數,如果你返回true或沒有,它將像往常一樣提交。

查看jQuery documentation瞭解更多信息。

5

可以使用onclick提交表單這樣之前運行一些JavaScript或jQuery代碼:

<script type="text/javascript"> 
    beforeSubmit = function(){ 
     if (1 == 1){ 
      //your before submit logic 
     }   
     $("#formid").submit();    
    } 
</script> 
<input type="button" value="Click" onclick="beforeSubmit();" /> 
+14

但是這不起作用,當表單包含例如用戶正在觸發提交事件的返回鍵的輸入字段。直接附加到提交事件通常會更好,因此無論用戶如何觸發提交,您都可以確保它被調用。 – acme

+2

Ansyori

相關問題