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来改变函数在本来堆栈的顺序。
分享到:
相关推荐
在网页开发中,表单提交是用户与服务器交互的关键环节,而在Internet ...这两种方法都能有效地避免由于Enter键导致的重复提交,提高应用的稳定性和用户体验。在实际开发中,应根据项目需求和环境选择合适的方法。
本文将深入探讨如何在IE和Firefox中实现文本框回车自动提交的机制,并提供详细的解决方案。 ### IE中的实现 在IE中实现文本框回车自动提交,开发者可能会遇到一些限制。默认情况下,当表单只有一个文本输入框时,...
本文将深入探讨ASP.NET中基于Ajax的Enter键提交问题,并提供解决方案。 首先,让我们回顾HTML表单(form)对Enter键的响应机制。在不同的浏览器中,Enter键的行为可能有所不同。以IE7为例: 1. 如果HTML form只有...
如果无法通过添加额外的输入框来避免此行为,可以通过以下两种方法阻止`<input>`回车键自动提交表单: 1. **增加一个隐藏的输入框**: 添加一个不可见的`<input>`元素,这样浏览器会认为表单中有多个输入框,从而...
7. `recaptchalib.php`:谷歌的reCAPTCHA库,用于防止机器人自动提交表单,提高网站的安全性。 8. `postube.php`:可能是集成视频上传或播放功能的页面,类似YouTube,允许用户上传和观看视频。 9. `bookform....
以上方法都可以有效地防止只有一个input文本框的表单在按下回车键时自动提交。选择哪种方法取决于你的应用场景和对用户体验的考虑。需要注意的是,不同的浏览器可能会有不同的默认行为,因此在开发时需要充分考虑到...
这个解决方案适用于简单的线性布局,对于更复杂的布局或需要特定顺序的控件切换,可能需要进一步定制`FindNextControl`方法。同时,也可以扩展此方法以支持其他类型的控件,比如ComboBox或其他支持用户输入的控件。 ...
如果不想让表单在按回车时自动提交,可以采取以下两种解决方案: 1. 添加一个隐藏的`<input type="text">`标签。通过设置`style='display:none'`,这个输入框不会在页面上显示,同时回车键也不会触发表单提交: ``...
在实际开发中,开发者可能会使用现有的库或框架,如jQuery UI的Autocomplete插件、React的Autosuggest组件或是Vue的Vue-Autocomplete,它们提供了现成的解决方案,简化了开发过程。然而,理解Suggest类的基本工作...
想给form表单增加回车自动提交的功能 $('#password').keydown(function(event){ if (event.keyCode == 13) $('#login').click(); });...问题解决,原因应该是form表单按enter会自动提交的原因。
3. **网页自动化**:网页自动化技术通常包括Selenium、Puppeteer等工具,但在这个场景下,脚本开发者可能只是用JavaScript直接操作DOM(文档对象模型),以控制网页元素,比如按钮点击、表单提交等。 4. **事件监听...
一开始尝试的解决方案是将“keydown”事件改为“keyup”事件,这在某种程度上能解决中文输入匹配的问题,但会破坏插件中如回车(ENTER)、制表符(TAB)等其他重要键位的事件绑定机制。比如在表单内的输入框中,...
这个问题通常是由于W3C标准中关于表单的默认提交行为导致的。在标准中提到,当一个表单内仅有一个单行文本输入框时,用户在该输入框中按下回车键通常会被解释为提交表单的请求。浏览器随后会执行页面刷新或跳转的...
解决方法: 方法一:禁用DHCP的DNS动态更新功能 1、单击开始,单击运行,键入dhcpmgmt.msc,然后单击确定 2、在控制台树中,用鼠标右键单击对应于 DHCP 服务器的节点,然后单击属性 3、在DNS选项卡上,单击以清除...
仔细分析这样的页面一般都满足以下条件:1、包含FORM表单 2、只有一个文本框 这样问题就可以解决了,破坏其中任何一个条件即可,一般的做法是加一个隐藏的文本框 当然你也可以在表单 form 后面加上一个 onsubmit ...
这样,由于存在多个输入框,回车键就不会自动触发提交了。不过,这种方法在某些情况下可能会影响表单的逻辑,需要谨慎使用。 3. **利用JavaScript进行事件处理**: - 虽然题目提到使用JavaScript不在讨论范围内,...
- `Ctrl+Alt+Enter`:自动调整代码缩进和布局。 10. **其他实用快捷键** - `Ctrl+Shift+空格`:智能提示,显示上下文相关的操作和帮助。 - `Ctrl+Shift+Alt+C`:复制引用,复制当前元素的完整引用路径。 - `...
首先,尝试直接在DIV或者button元素上使用Vue的事件修饰符`@keyup.enter`,但这种方法在某些情况下可能无效。例如: ```html <div class="btn submit" @keyup.enter="submit" @click="submit">确定(Ent) ``` ...