2010-11-01 175 views
7

我有一個簡單的文本字段和多個提交按鈕的形式。當用戶按下回車鍵時,我想提交具有特定提交按鈕的表單,但它看起來像表單只是選擇第一個按鈕。有什麼辦法可以告訴瀏覽器在用戶按下輸入時選擇哪個提交按鈕?最好沒有JavaScript,但我會採取,如果這是唯一的解決方案。用提交按鈕的形式提交表單與幾個提交按鈕

編輯:我沒有其他選擇,除了有多個提交按鈕。這是一個傳統的應用程序。

+2

不要爲需要多個提交按鈕而道歉。這是一個完美的想法 – Gareth 2010-11-01 13:41:00

+0

爲什麼你需要幾個提交按鈕?你想做什麼?也許還有其他方法 – 2010-11-01 10:27:02

+0

特別是因爲這似乎是唯一的方法來找出哪個按鈕被點擊使用MVC.NET – 2015-01-23 14:11:10

回答

12

沒有辦法。最簡單的解決方案只是確保表單中的第一個提交按鈕是您想要的按鈕輸入觸發的按鈕。

請注意,此提交按鈕可以是表單中其他位置的按鈕的副本,並且它不必是可見

+0

這是一個巧妙的把戲。我用它,它的工作就像一個魅力。謝謝! – mranders 2010-11-01 11:28:57

0

如果你有以下的HTML

<form id="form_one"> 
    <input type="submit" value="Submit 1" /> 
</form> 
<form id="form_two"> 
    <input type="submit" value="Submit 2" /> 
</form> 

然後,你可以有一點的jQuery如下

$(document).ready(function() { 
    $(this).keydown(function(e) { 
     if (e.keyCode == '13') { 
      $("#form_one").submit(); 
     } 
    }); 
}); 

顯然你必須把邏輯來決定提交何種形式。

另外,據我所知,如果「form_one」中的某個控件具有焦點並且您按下回車鍵,它會自動提交該控件所包含的表單。

2

您可以使用簡單的JS趕上onkeypress事件事件:

onkeypress="if ((event.keyCode | event.which) == 13) { document.getElementById('MySubmitButton').click(); return false; }" 

只是這與所需提交按鈕的ID添加到文本框的標籤和替換「MySubmitButton」。

注意:使用ID而不是名稱。

+0

謝謝!在過去的30分鐘裏,我一直在尋找各種各樣的黑客,這是最棒的! – thedrs 2011-12-25 15:09:25

-1

你可以在按鈕的「onclick」或「onkeypress」事件上定義一個javascript方法,你想從中獲取表單。但是你必須定義在JavaScript函數中發生的過程