在Safari中阻止Enter提交表单

时间:2019-03-25 10:00:56

标签: javascript jquery safari

我的页面上有以下代码:

$('form.enter-doesnt-submit').submit(function () {
    console.log($(document.activeElement));
    if($(document.activeElement).attr('type') == 'submit') {
        console.log
        return true;
    } else {
        console.log("Prevented enter from submitting the form.");
        return false;
    }
});

我很确定我很早以前从stackoverflow中学到了什么。它工作正常,只是不能在Safari中使用。原因是,当我注销document.activeElement时,它会给我整个页面,因此,属性类型当然不是提交,因此即使单击提交按钮,表单也不会提交

我必须能够阻止在我的表单上输入回车,因为它们是在线测试,并且如果用户正在编写答案,并且在填写完成之前不小心按了回车,那么它们会被错误地标记为未真正完成测试。

有人能帮助我采取一些防止在Safari上按下Enter键的方法吗?

1 个答案:

答案 0 :(得分:0)

好吧,我通过另一种方式解决了这个问题,它以表单中的输入作为目标:

$('form.enter-doesnt-submit input[type=text]').keypress(function (e) {
    if(e.keyCode == 13) {
        e.preventDefault()
    }
});

默认情况下,在文本区域中按Enter键不会提交表单,因此它只是需要防止的输入。现在,我的“提交”按钮可以在Safari和Chrome中使用。