Bootstrap modal при нажатии клавиши «enter» делает постбэк только в Firefox - PullRequest
0 голосов
/ 26 апреля 2019

У меня есть частичное представление в MVC, которое отображается на странице как мод начальной загрузки, и на этой странице также есть действие POST. В настоящее время, когда на странице отображается всплывающее окно, пользователю по крайней мере в Chrome не разрешается нажимать клавишу Enter, которая ничего не делает. Но если я нахожусь на firefox, то нажатие клавиши ввода в то время как на модале делает обратную передачу на родительской странице и переносит их на следующую страницу. Я обработал событие нажатия клавиши на родительской странице, чтобы отключить ключевое слово enter, которое, похоже, отлично работает в chrome, но не в firefox.

$(document).keypress(
            function (event) {
                if (event.which === '13') {
                    event.preventDefault();
                }
            });

Что я делаю не так? Что такого в Firefox, где этот скрипт либо избегается, либо не работает? Дайте мне знать, если мне потребуется предоставить дополнительную информацию.

1 Ответ

0 голосов
/ 29 апреля 2019

Так что я смог понять это. Мой сценарий состоял в том, что у меня была форма в MVC, где у меня было это модальное всплывающее окно, которое я отображал при нажатии кнопки на странице. Страница, содержащая всплывающее окно, имела действие POST, поэтому, когда во всплывающем окне была нажата кнопка ввода, сработало действие post. В Page.cshtml я отключил отправку формы, когда всплывающее окно было включено.

var shouldPrevent = false;
        $(function () {
            $("form").submit(function (e) {
                if (shouldPrevent)
                    e.preventDefault();
            })
            $('#modalpopup').on('hidden.bs.modal', function (e) {
                shouldPrevent = false;
            })
        });
$('.btnToShowPopup').click(function (e) {
  e.preventDefault();
  shouldPrevent = true;
 });
        

Делая это, каждый раз, когда нажимали кнопку, чтобы показать модальный режим, отправка формы была отключена. И когда модальный был закрыт, кнопка отправки была включена. Воспользовался модальным обработчиком событий bootstrap 3. Это решило мою проблему с тем, что действие поста на странице попадало даже из ключевого слова Enter в модальном режиме.

Спасибо!

...