Почему JS код блокирует submit

248
16 января 2017, 19:08

Есть форма на ASP.NET MVC. На форме выводится модель, у свойств которых есть определенные атрибуты стандартной валидации [Required] При submit формы срабатывает валидатор из стандартных библиотек:

bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                        "~/Scripts/jquery.unobtrusive*",
                        "~/Scripts/jquery.validate*"));

При добавлении на страницу скрипта, который при нажатии на кнопку submit лочит её, а потом через 2 секунды делает активной, не происходит submit формы, сам скрипт лока\анлока работает как надо, в чем проблема? Что нужно добавить в этот скрипт, чтобы submit успешно отрабатывал?

$(function() {
    $(".btn").each(function() {
        $(this).on("click", function () {
            var e = $(this);
            e.attr("disabled", "disabled");
            setTimeout(function() {
                e.removeAttr("disabled");
            }, 2000);
        });
    });
});
Answer 1
Вы блокируете кнопку перед отправкой формы.

Поставьте небольшой таймаут, чтобы заблокировать кнопку с небольшой задержкой:

И да, each не нужен

$(".btn").on("click", function() {
  var e = $(this);
  setTimeout(function() {
     e.attr("disabled", "disabled");
  },10);
  setTimeout(function() {
    e.removeAttr("disabled");
  }, 2000);
});
READ ALSO
Как выбрать admin dashboard для сайта?

Как выбрать admin dashboard для сайта?

Для небольшого сервиса нужна простая админка для добавления и редактирования записей, теговГугль выдает кучу подборок всяких admin dashboard, но как...

307
Загрузка background на сайте

Загрузка background на сайте

В стилях jsp-страницы, в body для background ставлю картинку

381
как сделать подсказки для input

как сделать подсказки для input

Вот скрин из консоли Chrome:

271
оформление поля “input” [требует правки]

оформление поля “input” [требует правки]

Доброго времени суток, подскажите пожалуйста: ест два input, один для логина, второй соответственно пароля, они сдвинуты вместе, как сделать...

242