Предотвращение ввода от отправки формы в Safari - PullRequest
0 голосов
/ 25 марта 2019

У меня на странице есть следующий код:

$('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, это дает мне всю страницу , поэтому, конечно, тип атрибута не передается, и поэтому форма не отправляется, даже когда вы нажимаете кнопку отправки.

Мне нужно иметь возможность запретить отправку заявок в моей форме, потому что они являются онлайн-тестами, и если пользователь пишет ответ и случайно нажимает клавишу ввода до того, как форма будет завершена, они будут помечены неправильно, поскольку они фактически не закончили тест.

Может ли кто-нибудь помочь мне каким-то образом предотвратить нажатие Enter на Safari?

1 Ответ

0 голосов
/ 25 марта 2019

Хорошо, я решил эту проблему, придя к этому по-другому, нацелившись на входные данные в форме:

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

Нажатие ввода в текстовой области не отправляет форму по умолчанию, поэтому это только входы, которые нужно предотвратить. Теперь моя кнопка отправки работает в Safari и Chrome.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...