回车引发的表单触发

这里整理一下记录方便查阅。。

在实际开发中经常碰到这样的坑,比如头部搜索,一般情况下,一个页面可能会存在多个form,有些form是隐藏的表单域,所以当你把按钮改成button类型的时候,敲击回车键依然会引发表单的提交。

所以对这一问题进行了归纳和整理。

1: 如果表单里有一个type=”submit”的按钮,回车键生效。
    可以设置为type="button",然后在js里面用submit()方法提交
2: 如果表单里只有一个type=”text”的input,不管按钮是什么type,回车键生效。
    坑爹货.当你断点调试会如果某些操作阻止了回车的生效,你很容易遗漏这个bug. 网上给的方案,多半都是跨省追捕,除了增加一个隐藏的Input,其实可以通过在js中调用preventDefault()方法来阻止默认行为的执行。
3: 如果按钮不是用input,而是用button,并且没有加type,IE下默认为type=button,FX默认为type=submit
    这个,我的确遇到过,由于button在chrome、firefox、IE下渲染不一样,所以按钮呈现也会出现较大的差异..
4: 其他表单元素如textarea、select不影响,radio checkbox不影响触发规则,但本身在FX下会响应回车键,在IE下不响应。
    未测试过
5: type=”image”的input,效果等同于type=”submit”,不知道为什么会设计这样一种type,不推荐使用,应该用CSS添加背景图合适些。
    当初项目中使用过,现在依然不明白设计的目的,估计是当初规范设定时不会考虑实现情况,就在利用背景图的方式来定义图形提交按钮

 

     

 

 

 

 

 

posted @ 2013-07-18 11:49  爵爷Jarvis  阅读(206)  评论(0)    收藏  举报