我有一个带有简单文本字段和多个提交按钮的表单。当用户按下回车键时,我想提交带有特定提交按钮的表单,但看起来表单只是选择了第一个按钮。当用户按下输入时,有没有办法告诉浏览器选择哪个提交按钮?最好没有javascript,但如果这是唯一的解决方案,我会接受它。
编辑:除了拥有多个提交按钮,我别无选择。这是一个遗留应用程序。
答案 0 :(得分:12)
没有办法。最简单的解决方案是确保表单中的第一个提交按钮是您想要通过 Enter 按钮触发的按钮。
请注意,此提交按钮可以与表单中其他位置的按钮重复,并且不必可见。
答案 1 :(得分:2)
您可以使用简单的JS来捕获onkeypress事件:
onkeypress="if ((event.keyCode | event.which) == 13) { document.getElementById('MySubmitButton').click(); return false; }"
只需将其添加到文本框标记中,并将“MySubmitButton”替换为所需提交按钮的ID。
注意:使用ID,而不是名称。
答案 2 :(得分: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”中的控件有焦点并且您点击了输入,它会自动提交该控件包含在其中的表单。
答案 3 :(得分:-1)
你可以在按钮的“onclick”或“onkeypress”事件上定义一个javascript方法,你想从中提交表单。但是你必须定义在javascript函数中发生的过程