当前位置: 首页 > 面试题库 >

使用Enter键阻止表单提交

宋凌龙
2023-03-14
问题内容

我只是写了这个漂亮的小函数,它可以在表单本身上工作…

$("#form").keypress(function(e) {
    if (e.which == 13) {
        var tagName = e.target.tagName.toLowerCase(); 
        if (tagName !== "textarea") {
            return false;
        }
    }
});

按照我的逻辑,我想在输入textarea期间接受回车。同样,将输入字段的回车键行为替换为跳到下一个输入字段的行为(就像按下Tab键一样)将是额外的好处。有谁知道使用事件传播模型正确触发适当元素上的回车键,但阻止表单在其按下时提交的方法吗?


问题答案:

这是我功能的修改版本。它执行以下操作:

  1. 防止Enter键在除textarea,button和Submit之外的表单的任何元素上起作用。
  2. 回车键现在就像一个标签。
  3. preventDefault(),在元素上调用stopPropagation()很好,但是在表单上调用似乎阻止事件到达元素。

因此,我的解决方法是检查元素类型,如果该类型不是textarea(允许输入),或者不是按钮/提交(enter = click),那么我们只需跳到下一页即可。

在元素上调用.next()没什么用,因为其他元素可能不是简单的同级元素,但是由于DOM在选择时几乎都是保证顺序的,所以一切都很好。

function preventEnterSubmit(e) {
    if (e.which == 13) {
        var $targ = $(e.target);

        if (!$targ.is("textarea") && !$targ.is(":button,:submit")) {
            var focusNext = false;
            $(this).find(":input:visible:not([disabled],[readonly]), a").each(function(){
                if (this === e.target) {
                    focusNext = true;
                }
                else if (focusNext){
                    $(this).focus();
                    return false;
                }
            });

            return false;
        }
    }
}


 类似资料:
  • 问题内容: 我在网站上进行了一项调查,用户单击Enter键(我不知道为什么),然后不按提交按钮就意外提交了调查(窗体),似乎存在一些问题。有办法防止这种情况吗? 我在调查中使用的是HTML,PHP 5.2.9和jQuery。 问题答案: 您可以使用诸如 在阅读原始帖子的评论时,要使其更加有用,并允许人们在完成所有字段后按下:

  • 在这种特殊情况下,当我按Enter键时,我必须使用哪些选项使这些输入调用函数? Html:

  • 问题内容: 这是我的表单和onClick方法。我想在按下键盘的Enter按钮时执行此方法。怎么样 ? 注意: 没有jquery被赞赏。 问题答案: 更改为。删除。反而做。这应该可以单击按钮并按回车键。

  • 问题内容: 在这种特殊情况下,按Enter键时必须使这些输入调用函数的选项是什么? 问题答案: Angular开箱即用。您是否在表单元素上尝试了ngSubmit? 编辑:根据有关提交按钮的注释,该解决方案包括: 如果您不喜欢隐藏的提交按钮解决方案,则需要将控制器功能绑定到Enter keypress或keyup事件。这通常需要一个自定义指令,但是AngularUI库已经设置了一个不错的按键解决方案

  • 我正在尝试在用户按回车键时提交登录表单。单击“登录”按钮时,表单运行良好,但按回车键不起作用,此外,还会导致奇怪的行为: 未执行由ng submit关联的功能 按enter键后,不再显示错误消息(登录失败) 以下是我的标记: 注意,我尝试替换了<代码> 具有login()函数的相应控制器如下所示: 我运行angularv1.4.0并使用angular-用户界面-router v.0.2.15进行路

  • 本文向大家介绍js实现键盘Enter键提交表单的方法,包括了js实现键盘Enter键提交表单的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了js实现键盘Enter键提交表单的方法。分享给大家供大家参考。具体实现方法如下: 最后只需要在body中加入:<body onkeydown="keyDown(event);">。   或者如下方法,但是在火狐浏览器下不兼容: 希望本文所述对大家