`
shake863
  • 浏览: 661444 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

form 回车自动提交问题

阅读更多

今天遇到一个很变态的问题,由于一个input框要用suggest ,会用到回车事件。
但是在一个form里面,按回车的时候我的form自动提交了,我靠,怎么改动不行。

把submit改成button,也不行。蛋蛋的,看样子是自动执行了form.submit()

结果从网上得到某位大侠的文章,搞定,特立此文留念。原文如下:




我们有时候希望回车键敲在文本框(input element)里来提交表单(form),但有时候又不希望如此。比如搜索行为,希望输入完关键词之后直接按回车键立即提交表单,而有些复杂表单,可能要避免回车键误操作在未完成表单填写的时候就触发了表单提交。

要控制这些行为,不需要借助JS,浏览器已经帮我们做了这些处理,这里总结几条规则:

  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添加背景图合适些。

实际应用的时候,要让表单响应回车键很容易,保证表单里有个type=”submit”的按钮就行。而当只有一个文本框又不希望响应回车键怎么办 呢?我的方法有点别扭,就是再写一个无意义的文本框,隐藏起来。根据第3条规则,我们在用button的时候,尽量显式声明type以使浏览器表现一致。

做了一个 demo (点击查看) 列出了一些例子。

本文链接:http://www.blueidea.com/tech/web/2009/6390.asp

 

分享到:
评论
2 楼 sztime 2013-05-10  
可以在文本框上绑定事件来禁用回车键, 我就是这样做的.
在IE中比较简单, 直接用 onkeypress="return event.keyCode!=0xd;"就行, 其它浏览器的代码稍麻烦一点.
1 楼 wuyizhong 2012-09-25  
原来如此啊。

相关推荐

    Form表单按回车自动提交表单的实现方法

    1.form表单中只有一个input标签,按回车键将自动提交表单 当form表单中只有一个<input type=”text” name=’name’ />时按回车键将会自动将表单提交。 <form id='form1' action='a1.jsp' method='post'&gt...

    如何防止INPUT按回车自动提交表单FORM

    总结来说,防止`<input>`按回车自动提交`<form>`表单,可以通过增加隐藏的`<input>`元素或者使用JavaScript监听并阻止回车键的默认行为。这两种技术在实际开发中都得到了广泛的应用,可以根据项目需求选择适合的实现...

    ie ,火狐 文本框回车自动提交

    在网页开发过程中,一个常见的需求是当用户在文本框中按下回车键时,自动...总之,通过合理利用HTML、CSS和JavaScript,我们可以有效地解决在不同浏览器中实现文本框回车自动提交的问题,为用户提供无缝的交互体验。

    禁止按回车键提交表单的方法

    然而,如果表单包含两个或多个文本输入框,浏览器就不会在任何输入框中按下回车时自动提交表单。这是浏览器的一个默认行为。 针对这一行为,我们可以采取以下策略来禁止回车键提交表单: 1. 添加一个隐藏的文本...

    按回车表单自动提交问题意外发现

    这样,即使表单中只有一个可见的输入框,按下回车键时,浏览器会识别到还有其他表单控件存在,因此不会触发表单的自动提交行为。 最后,需要注意的是,在一些表单设计中,可能会使用JavaScript来控制表单的提交过程...

    网页中回车后form自动提交跳到其他页面的解决方法

    网页回车后form自动提交,跑到其他页面 有个查询的form,本来是希望点击查询时才查询的,结果测试到回车时跑到其他页面去了。 复制代码代码如下: <form action=”notice.php” method=”get”> … <...

    按回车键提交表单~~~~~

    如果确实按下了回车键,则模拟点击提交按钮的行为,进而实现表单的自动提交。 ### 2. 兼容性问题及解决方案 在上述代码中,可以看到开发者为了兼容IE浏览器而特别编写了一段逻辑。这是因为早期的IE浏览器与其他...

    JSP中的FORM表单中只有一个input文本时,按回车键将会自动提交表单

    -- 解决form表单在只有一个input输入框时回车会自动提交表单 --> </form> ``` 此外,还可以通过JavaScript绑定事件来避免这种情况。例如,可以监听键盘按键事件,当用户按下回车键时,执行特定的函数,阻止表单的...

    网页中表单按回车就自动提交的问题的解决方案

    在网页设计中,表单是用户与服务器交互的重要组成部分,其中的一个常见问题是在表单内按下回车键会自动触发表单的提交。这在某些情况下可能会带来不便,例如用户可能意外地提前提交了未完成的表单。本文将详细讨论这...

    点击回车提交表单,应用Java技术实现。

    在这个例子中,我们利用JavaScript来监听键盘事件,并在用户按下Enter键时自动提交表单。 ```javascript document.onkeydown = function (evt) { var evt = window.event ? window.event : evt; // 兼容IE和其他...

    bootstrap表单按回车会自动刷新页面的解决办法

    想给form表单增加回车自动提交的功能 $('#password').keydown(function(event){ if (event.keyCode == 13) $('#login').click(); }); 然而,并没有达到预期的效果,而是自动刷新了表单,并将表单参数放在了url...

    jsp中如何实现按下回车键自动提交表单.docx

    ### 如何在JSP中实现按下回车键自动提交表单 #### 背景介绍 在Web开发中,为了提升用户体验,有时我们需要实现在用户按下回车键时自动提交表单的功能。这对于登录页面、搜索框等场景非常实用。本文将详细介绍如何在...

    jsp中如何实现按下回车键自动提交表单

    总结来说,通过JavaScript(或者使用库如jQuery)监听键盘事件,检查回车键的按键码,并在检测到回车键被按下时触发表单的提交,可以在JSP中实现按下回车键自动提交表单的功能。这样,用户无需手动点击提交按钮,只...

Global site tag (gtag.js) - Google Analytics