2013-07-10 47 views
3

我有一個表格,當我按下Enter鍵時,我試圖提交多個輸入框,無論其中一個輸入當前是否突出顯示。也就是說,我希望能夠輸入文字,點擊頁面背景,按回車鍵,然後提交表格。我試圖製作一個隱藏的按鈕,但這種解決方案似乎只在光標位於其中一個輸入內時纔會提交。使用純JavaScript地圖輸入密鑰提交,而不在輸入內

回答

3

使用onkeypressdocument

Fiddle.(demo)

JS:

var form = document.getElementById('form'); 
document.onkeypress = function(e) { 
    if(e.keyCode === 13) //if enter pressed 
    { 
     form.submit(); 
    } 

} 

下面是使用addEventListener另一種解決方案由馬特·的建議:

var form = document.getElementById('form'); 
function submitForm(e) { 
    if(e.keyCode === 13) //if enter pressed 
    { 
     form.submit(); 
    } 

} 

document.addEventListener('keypress', function() {submitForm(event)}, false); 

作爲一個方面說明: 我將在地方純JS可以幫助您輕鬆,這就是爲什麼給你一個JavaScript解決方案使用jQuery的勸阻你。我會勸阻,因爲jQuery增加服務器上的負載很多!

正如你說的,你是新來的JavaScript執行以下步驟讓你的腳本運行每次:

  1. 我的代碼添加到一個文件.js擴展
  2. 您的交易</body>之前添加<script src="your_filename.js" type="text/javascript"></script>標籤。
  3. 刷新你的頁面和瞧。
+0

在純JavaScript回答好工作。它可能會幫助一些人使用該語言,而不是一堆將15 PB添加到您的網站的庫。 –

+0

謝謝@JeffNoel :) –

+0

Upvote for no jQuery,but you should use'addEventListener',而不是設置'onkeypress'屬性。 –

1

使用jQuery的幫助:

$(document).keydown(function(e) { 

    if (e.keyCode == 13) { 

     $('#your-form').submit(); 

     return false; 
    } 

}); 
+0

你爲什麼複製我的? –

+2

對不起,我們在同一時間發佈它,我猜! – Pieter

+1

答案是純粹有效的。而且我們都將我們的知識從別人的知識中複製過來。類似這樣的問題可以在6秒內得到15個答案,都是一樣的,但這是jQuery的替代方案:) –