javascript - 输入触发器按钮单击

我有一个带有两个按钮的页面。一个是<button>元素,另一个是 <input type="submit"> .按钮按该顺序显示在页面上。如果我在表单中的任意文本字段中并按 <Enter> ,按钮元素的click事件被触发。我认为这是因为按钮元素位于第一位。

我找不到任何看起来像设置默认按钮的可靠方法的方法,我现在也不一定想这样做。在没有更好的情况下,我已经在表单的任何位置捕获了一个按键,如果它是 <Enter>按下的键,我只是否定它:

$('form').keypress( function( e ) {
  var code = e.keyCode || e.which;

  if( code === 13 ) {
    e.preventDefault();
    return false; 
  }
})

据我目前所知,它似乎有效,但感觉非常笨拙。

有谁知道这样做的更复杂的技术吗?

同样,这个解决方案有什么我不知道的陷阱吗?

谢谢。

最佳答案

使用

<button type="button">Whatever</button>

应该可以解决问题。

原因是表单内的按钮的类型隐式设置为submit。正如 zzzzBoz 所说,规范说第一个 buttoninputtype="submit" 是在这种情况下触发的。如果您专门设置了 type="button",则浏览器会将其从考虑中移除。

https://stackoverflow.com/questions/4763638/

相关文章:

mongodb - 默认在 MongoDB shell 中打印漂亮

database - MongoDB 或 CouchDB - 适合生产?

mongodb - 如何从命令行删除 MongoDB 数据库?

architecture - 何时使用 Redis?何时使用 MongoDB?

mongodb - 查询数组大小大于 1 的文档

mysql - 何时使用 MongoDB 或其他面向文档的数据库系统?

mongodb - 如何获取mongodb中的最后N条记录?

mongodb - 如何列出 MongoDB shell 中的所有集合?

mongodb - 何时在 MongoDB 上使用 CouchDB,反之亦然

javascript - 如何更改标签的文本?