2009-09-15 100 views
3

我有一個表格,我使用JQuery,我不認爲我需要把代碼放在這篇文章中,這個問題是非常基本的。如何在按下回車鍵或回車鍵時阻止表單提交?

但我想阻止表單提交時,人們按下Enter鍵或Return鍵。

同時,我有textareas,用戶需要能夠按Enter/Return鍵。

+0

一個很好的折衷可能是實現客戶端驗證。如果用戶按下輸入並且驗證失敗,表單將不會通過。如果他們按回車並驗證成功,即使是意外,表單也會通過,但至少您會保持默認瀏覽器行爲不變。 – colllin 2012-02-29 21:40:40

回答

4

快速和骯髒的劈,但一般不是試圖阻止在各個領域的按鍵更可靠:地址:

<input type="submit" onclick="return false;" /> 

在窗體的頂部。在當前瀏覽器中按下Enter鍵時,表單中的第一次提交將用作默認按鈕,因此通過中斷它可以防止發生Enter提交。

然後使用CSS隱藏和/或移動按鈕,使其無法看到。

儘管阻止輸入提交併不總是一個好主意,這是瀏覽器工作的標準方式,有些用戶確實需要它。

+0

謝謝,那就是我一直在尋找的。我明白,瀏覽器正常操作並不是一個好主意,但有時你只需要做客戶需要的東西...... – BIL9000 2009-09-16 20:31:58

0

在文檔級設置一個標誌,submitform = false; 驗證提交對此。 更改提交按鈕的onclick處理程序中的標誌。

0

難道你不能添加一個onsubmit屬性給表單,然後檢查它是否使用回車鍵提交?

0

你可以試試這個

jQuery(document).ready(function(){ 
    validSubmit = false; 
}) 

jQuery('myForm textarea').keypress(function(e) { 
    if (e.which == 13) { 
     validSubmit = true; // if the pressed key is enter, then allow submissions 
    } 
}) 

jQuery('myForm').submit(function(){ 
    if (!validSubmit) { 
     return false; //if submitting the form is not allowed, then cancel submission 
    } 
}) 

這將取消任何除非輸入/敲擊回車鍵上一個textarea提交的所有文件。如果你正在使用一個按鈕,你也需要添加一個函數。

jQuery('form button.validSubmit').click(function(){ //or 'form input[type="submit"]' 
    validSubmission = true; 
})