当阻止Enter键提交AJAX表单时,焦点在于下一个输入不起作用

时间:2016-05-07 07:23:09

标签: javascript jquery ajax forms

我无法找到解决方案的小问题(也许我用错误的关键字搜索):

情况:

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

防止输入密钥是一项简单的任务,它可以工作:

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

问题:

由于return 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;
    }
});

关于如何解决的任何想法?

1 个答案:

答案 0 :(得分:1)

尝试调用if条件中的函数并在该函数中使用$(this).next().focus();。在callback功能中,您可以return false阻止表单提交。