2012-03-30 72 views
1

我有一個沒有提交按鈕的html表單。我想在按下ENTER按鈕後提交該表格。我使用了一個簡單的jQuery代碼來敲擊ENTER時提交表單。知道建議被打開

$("form :input").keypress(function(e) 
{ 
    if(e.keyCode == 13) 
    { 
     $(this).parents('form').submit(); 
    } 
}); 

但是這個代碼有問題。當我輸入文本字段並想要使用「ENTER」鍵選擇一個建議(這些建議是由瀏覽器根據該字段的歷史建議的)時,它會觸發提交當前表單。我也想跳過這個。

有什麼樣jQuery中或JavaScript

$("form :input").keypress(function(e) 
{ 
    if(e.keyCode == 13) 
    { 
     if(! $(this).is('suggestOpened')) // i want something like this 
     { 
      // submit the form 
     } 

    } 
}); 

在此先感謝。

+0

您可以防止事件的「默認行爲」(在您的案例中提交表單):http://api.jquery.com/event.preventDefault/ – m90 2012-03-30 06:29:22

+0

您可以將您的代碼添加到jsfiddle – 2012-03-30 06:30:50

回答

2

不,沒有這樣的事件。你可以用onchangeonblur事件起到攔截用戶是否正在填補一個特定的領域,但無論如何沒有一個提交按鈕:

  • 有沒有辦法爲用戶計算出如何提交表單

  • 同樣的動作(輸入按鍵)可能會導致兩種不同的行動,打破人機界面的一致性

恕我直言,你一定要放置一個提交按鈕。