防止在Safari中提交表单

问题描述 投票:0回答:1

我的页面上有以下代码:

$('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上被压入吗?

javascript jquery safari
1个回答
0
投票

好吧,我通过另一种方式来解决这个问题,而不是通过定位表单中的输入:

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

在textarea中按Enter不会默认提交表单,因此它只是需要阻止的输入。现在我的提交按钮适用于safari和chrome。

© www.soinside.com 2019 - 2024. All rights reserved.