2012-08-26 34 views
0

這個問題應該已經回答了jquery disable form submit on enter,但該問題的答案似乎並不適用於我 - 當我在輸入文本中按Enter鍵時現場發生三件事:如何禁用提交輸入jquery離開附加的其他功能輸入完好

  1. 該字段的更改事件被觸發。
  2. 表單已提交。
  3. 最後,上述答案中描述的keyup事件處理程序被觸發。

現在,我可以用keydown替換keyup,然後提交真的不會被觸發。但該領域的變化事件也不是。

有很多在互聯網上的聯繫,但大多數都在談論複雜的場景,比如禁用如果當,等...

我要的是始終禁用提交進入,罷了。

我正在使用jquery 1.8.0

謝謝。

編輯

我想澄清。我確實希望當用戶點擊提交輸入按鈕時發生提交。我只是不希望它在輸入時發生。

<form id="invoiceForm"> 
    ... 
    <input type="submit"/> 
</form> 

EDIT2

http://jsfiddle.net/mark69_fnd/akZG4/ - 如果被觸發提交一個應該看到消息

{"error": "Please use POST request"} 

我不希望看到在進入此消息。只有在提交被實際點擊的時候。

EDIT3

我改變了小提琴實際上是一個空白頁,並提醒在提交提交。

EDIT4

我想阻止提交關於打擊文本輸入字段中輸入鍵形式的默認操作。但我確實想保留文本輸入的自然行爲 - 觸發更改事件。

+0

你什麼時候提交表格?按下按鈕?請張貼一些代碼 – Samson

回答

1

在類似情況下,我用這個:

HTML:

<input name="my_text" onkeypress="disableSubmit(this, event)" /> 

JS:

function disableSubmit(elem, event) { 
    if (event.which == 13) { 
     event.preventDefault(); 
     $(elem).blur(); 
     return false; 
    } 
} 

所以基本上火災模糊甚至 - 因此,當輸入已改變 - 改變活動也將被解僱。當然副作用是輸入失去焦點。但從我們的使用情況角度來看,這是確定的。