2010-11-01 176 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函数中发生的过程