Показать сообщение отдельно
  #16 (permalink)  
Старый 28.10.2016, 06:24
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Если ожидать лучшего, хотя данная проверка, это минимум, и с таковой браузеры умные уже сами справляются. А вот чего не должен ожидать сервер, так это множество отправлений одной формы. Отправление формы не обязательно быстрый процесс, даже на стадии подключения к серверу могут быть задержки, а клиент может не дождавшись ответа сервера отправить форму вновь. Поэтому как минимальное на стороне клиента нужно блокировать отправление формы на время обмена данными с сервером. Для этого строки 4-8 кода можно переписать так:

var f = this,
            s = $(f.elements).last(),
            e = s.end().slice(0, -1).removeClass('input-error').filter(function() {
                return !$.trim(this.value)
            });


перед строкой 13 добавить: s.prop('disabled', 1);, а в success: function(data) добавить: s.prop('disabled', 0);
Строку 13 переписать так: s.end().not(s).addClass('input-success');

Последний раз редактировалось laimas, 28.10.2016 в 13:53.
Ответить с цитированием