Когда форма отправляется, иногда, когда пользователи ждут, они могут нажать кнопку отправки более одного раза. Это может привести к дублированию представлений.

Во-первых, мы отключим кнопку отправки, когда форма действительна.

$('form').submit(function() {
  if ($(this).valid()) {
    $(this).find('button[type="submit"]').prop('disabled', true);
  }
});

Мы можем сделать его более красивым, если добавим загрузчик во время ожидания пользователя. В качестве загрузчика в этом примере я использовал FontAwesome Fonts 4.7.

$('form').submit(function () {
  if ($(this).valid()) {
    $(this).find('button[type="submit"]')
           .prop('disabled', true)
           .attr('style', 'background:none;border:none;')
           .html('<i class="fa fa-spinner fa-spin"></i>');
  }
});

Эта функция уже установлена ​​в этой стартовой теме Orchard CMS.

Первоначально опубликовано на https://orchardtricks.dotnest.com.