0

我有一个像这样的输入处理程序:

$('.submit-on-enter').keydown(function (e) {
  if (e.keyCode == 13) {
    var id = $(this).attr('id');
    $('input[type=submit][for=' + id + ']').click();
  }
});

这是一个带有多个按钮的表单。我遇到的问题是,当表单到达服务器时,第一个按钮就在那里,而不是“点击”的那个。我已经验证了上述处理程序中的 id 是预期的 id。

为了清楚起见,我正在检查按钮服务器端是否存在 name 属性以确定单击了哪个按钮。无论如何,页面上第一个按钮的名称始终存在。

有任何想法吗?

4

1 回答 1

0

这是解决方案,注意事件的变化。keydown 似乎不允许在 chrome 中停止表单提交事件。

$('.submit-on-enter').keypress(function (e) {
  if (e.keyCode == 13) {
    e.preventDefault();
    var id = $(this).attr('id');
    var name = $('input[type=submit][for=' + id + ']').attr('name');
    $('input[type=submit][for=' + id + ']').click();
  }
});
于 2013-03-20T15:53:22.180 回答