必须吐槽一下:与js无关的回车事件

今天遇到一个问题,搞的我丈2的和尚。问题如下:

页面里面一个表单,一个文本框,没有写任何回车事件,但是点回车的时候,就会触发回车,回传页面。
以为是事件冒泡,各种阻止,没有用。

于是 写了一个响应回车事件的方法。结果页面会回传两次,(自己写的方法回传一次,不知道由来的响应回车事件,又让页面回传一次)。
而且第二次回传是在我第一次回传之后。所以第一次回传会被中止。也就是我自己写的响应事件,是达不到预期效果的。这下问题就严重了。我想做的事,做不了。

于是各种google,终于有了结果:

  1. 如果表单里有一个type=”submit”的按钮,回车键生效。
  2. 如果 表单里只有一个type=”text”的input,不管按钮是什么type,回车键生效。
  3. 如果按钮不是用input,而是用button,并且没有加type,IE下默认为type=button,FX默认为 type=submit。
  4. 其他表单元素如textarea、select不影 响,radio checkbox不影响触发规则,但本身在FX下会响应回车键,在IE下不响应。
  5. type=”image”的input,效果等同于type=”submit”,不知道为什么会设计这样一种type,不推荐使用,应该用 CSS添加背景图合适些。

这五点是引用别人的原话,说的很明了。我的就是第二点。跟js没有关系,仅是浏览器默认的一些规则而矣。

所以,一下次,如果你的页面也只有一个“text”(一般是搜索页面),如果也想写回车事件的话,就要注意了。

其实像这种问题,解决办法很变态,我是在页面里面放一个隐藏的“text”。

原文地址:https://www.cnblogs.com/XChWaad/p/3309301.html