javascript - 当阻止 Enter 键提交 AJAX 表单时,专注于下一个输入不起作用

标签 javascript jquery ajax forms

一个我找不到解决方案的小问题(也许我在谷歌上搜索了错误的关键字):

情况:

我通过按 Enter 键 (13) 来阻止提交表单。 需要注意的是,表单将通过 AJAX 提交,因此不会重新加载页面。

阻止 Enter 键是一项简单的任务,而且有效:

$(document).on('keypress', 'input', function (e) {
    if (e.which === 13) {
        return false;
    }
});

问题:

由于返回 false,对下一个输入的关注不起作用。

如果我省略 return false 部分,那么表单自然会由 AJAX 提交并且 focus() 正在工作。

$(document).on('keypress', 'input', function (e) {
    if (e.which === 13) {
        // Simplifying the selector of the next input
        // because this isn't the problem
        $(this).next().focus();
        return false;
    }
});

关于如何解决这个问题有什么想法吗?

最佳答案

尝试在 if 条件中调用一个函数,并在该函数中添加 $(this).next().focus(); 。在callback函数中,您可以返回 false以阻止表单提交。

关于javascript - 当阻止 Enter 键提交 AJAX 表单时,专注于下一个输入不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37085734/

相关文章:

关联数组中的 JavaScript 函数 "is not a function"

jquery - 根据子元素的变化增加或减少父 div 高度

jQuery 删除自定义元素的标签

jquery - @media Query 是否覆盖了我的 jQuery 的规则?

javascript - 如何让变量从 Controller 持久保存到 js 文件、渲染的部分

javascript - 使用 Javascript 提交表单并使用 ajaxForm 处理

php - Jquery ajax返回当前页面的html作为响应

javascript - 无法从不同的单选按钮组获取值

javascript - 使 javascript 图像随机化器响应 css?

javascript - concatMap 可变数量的 promise 和管道结果作为下一个 promise 的参数