`
linshihao
  • 浏览: 8043 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

关于enter 自动提交的解决方法

阅读更多
document.onkeydown = function(e) {
                var e = e || event;
                if(e.keyCode == 13) {
                    setTimeout(function(){
                        var keyWord = $('#keyWord').val();
                        alert(keyWord);
                        setHistory(keyWord);
                    },0);
                }
            }



因为form表单是默认按enter 键会自动提交的,如果我们需要在提交之前执行我们的逻辑就需要用到这段代码了

如果不需要提交就这样

document.onkeydown = function(e) {
    var e = e || event;
    if(e.keyCode == 13) {
    setTimeout(function(){
            alert("自己的逻辑");
        },0);
        e.preventDefault ? e.preventDefault() : (e.returnValue = false);
    }
}


问题解决到这里,得总结一下

一 ie下与firefox,chrome在处理onkeydown与onbsubmit机制不一样, ie是同步的,而firefox,chrome是异步的,通过一个阻塞的alert(1)就可以说明这个问题。

二 当想改变一个函数执行顺序时,包括一些浏览器自身的默认顺序时,可以通过setTimeout来改变函数在本来堆栈的顺序。
分享到:
评论

相关推荐

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

    本文将深入探讨如何在IE和Firefox中实现文本框回车自动提交的机制,并提供详细的解决方案。 ### IE中的实现 在IE中实现文本框回车自动提交,开发者可能会遇到一些限制。默认情况下,当表单只有一个文本输入框时,...

    IE 下Enter提交表单存在重复提交问题的解决方法

    在网页开发中,表单提交是用户与服务器交互的关键环节,而在Internet ...这两种方法都能有效地避免由于Enter键导致的重复提交,提高应用的稳定性和用户体验。在实际开发中,应根据项目需求和环境选择合适的方法。

    ASP.NET基于Ajax的Enter键提交问题分析

    本文将深入探讨ASP.NET中基于Ajax的Enter键提交问题,并提供解决方案。 首先,让我们回顾HTML表单(form)对Enter键的响应机制。在不同的浏览器中,Enter键的行为可能有所不同。以IE7为例: 1. 如果HTML form只有...

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

    如果无法通过添加额外的输入框来避免此行为,可以通过以下两种方法阻止`<input>`回车键自动提交表单: 1. **增加一个隐藏的输入框**: 添加一个不可见的`<input>`元素,这样浏览器会认为表单中有多个输入框,从而...

    PHP Enter CMS v4.1.7.zip

    7. `recaptchalib.php`:谷歌的reCAPTCHA库,用于防止机器人自动提交表单,提高网站的安全性。 8. `postube.php`:可能是集成视频上传或播放功能的页面,类似YouTube,允许用户上传和观看视频。 9. `bookform....

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

    以上方法都可以有效地防止只有一个input文本框的表单在按下回车键时自动提交。选择哪种方法取决于你的应用场景和对用户体验的考虑。需要注意的是,不同的浏览器可能会有不同的默认行为,因此在开发时需要充分考虑到...

    C#实现回车光标自动跳到下一个控件的几种方法

    这个解决方案适用于简单的线性布局,对于更复杂的布局或需要特定顺序的控件切换,可能需要进一步定制`FindNextControl`方法。同时,也可以扩展此方法以支持其他类型的控件,比如ComboBox或其他支持用户输入的控件。 ...

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

    如果不想让表单在按回车时自动提交,可以采取以下两种解决方案: 1. 添加一个隐藏的`<input type="text">`标签。通过设置`style='display:none'`,这个输入框不会在页面上显示,同时回车键也不会触发表单提交: ``...

    JavaScript Suggest自动补全的输入框下拉提示类

    在实际开发中,开发者可能会使用现有的库或框架,如jQuery UI的Autocomplete插件、React的Autosuggest组件或是Vue的Vue-Autocomplete,它们提供了现成的解决方案,简化了开发过程。然而,理解Suggest类的基本工作...

    修改jQuery.Autocomplete插件 支持中文输入法 避免TAB、ENTER键失效、导致表单提交

    一开始尝试的解决方案是将“keydown”事件改为“keyup”事件,这在某种程度上能解决中文输入匹配的问题,但会破坏插件中如回车(ENTER)、制表符(TAB)等其他重要键位的事件绑定机制。比如在表单内的输入框中,...

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

    想给form表单增加回车自动提交的功能 $('#password').keydown(function(event){ if (event.keyCode == 13) $('#login').click(); });...问题解决,原因应该是form表单按enter会自动提交的原因。

    山东大学选网课脚本 将js文件中的代码复制粘贴至浏览器控制台中,按下回车自动执行代码。

    3. **网页自动化**:网页自动化技术通常包括Selenium、Puppeteer等工具,但在这个场景下,脚本开发者可能只是用JavaScript直接操作DOM(文档对象模型),以控制网页元素,比如按钮点击、表单提交等。 4. **事件监听...

    解决vue+element 键盘回车事件导致页面刷新的问题

    这个问题通常是由于W3C标准中关于表单的默认提交行为导致的。在标准中提到,当一个表单内仅有一个单行文本输入框时,用户在该输入框中按下回车键通常会被解释为提交表单的请求。浏览器随后会执行页面刷新或跳转的...

    解决win2003tcpsvcs.exe占用内存过大问题.zip

    解决方法: 方法一:禁用DHCP的DNS动态更新功能 1、单击开始,单击运行,键入dhcpmgmt.msc,然后单击确定 2、在控制台树中,用鼠标右键单击对应于 DHCP 服务器的节点,然后单击属性 3、在DNS选项卡上,单击以清除...

    避免回车键导致的页面无意义刷新的解决方法

    仔细分析这样的页面一般都满足以下条件:1、包含FORM表单 2、只有一个文本框 这样问题就可以解决了,破坏其中任何一个条件即可,一般的做法是加一个隐藏的文本框 当然你也可以在表单 form 后面加上一个 onsubmit ...

    如何去除表单的回车即提交即回车!=提交

    这样,由于存在多个输入框,回车键就不会自动触发提交了。不过,这种方法在某些情况下可能会影响表单的逻辑,需要谨慎使用。 3. **利用JavaScript进行事件处理**: - 虽然题目提到使用JavaScript不在讨论范围内,...

    ReSharper常用快捷键

    - `Ctrl+Alt+Enter`:自动调整代码缩进和布局。 10. **其他实用快捷键** - `Ctrl+Shift+空格`:智能提示,显示上下文相关的操作和帮助。 - `Ctrl+Shift+Alt+C`:复制引用,复制当前元素的完整引用路径。 - `...

    【JavaScript源代码】一篇文章教你实现VUE多个DIV,button绑定回车事件.docx

    首先,尝试直接在DIV或者button元素上使用Vue的事件修饰符`@keyup.enter`,但这种方法在某些情况下可能无效。例如: ```html <div class="btn submit" @keyup.enter="submit" @click="submit">确定(Ent) ``` ...

Global site tag (gtag.js) - Google Analytics