Как запустить HTML5 валидацию формы перед AJAX?

Есть форма входа, которая при подключенном JS вместо сабмита запускает AJAX запрос:
$(document).ready(function () {

    $('#login-form__submit').click(function (e) {
        e.preventDefault();
        tryToLogin(); // выполняет $.post(...
    });
})


Проблема - перед запуском AJAX не производится валидация формы. У меня всё прописано в HTML5 - required, minlength - и я не хочу еще лишний раз писать валидацию на JS.
Как запустить из JS HTML5 валидацию формы, и чтоб выскакивали нативные сообщения браузера в случае неправильно введенных данных?
  • Вопрос задан
  • 475 просмотров
Решения вопроса 1
Audiophile
@Audiophile Автор вопроса
Наконец-то нашёл более-менее простой способ.

Нужно прописать нечто такое перед инструкциями в tryToLogin():

if(!$('.login-form')[0].checkValidity()) {
        $('.login-form__submit').off( "click" ).click().click(function (e) {
            e.preventDefault();
            tryToLogin();
        });
        return false;
    }


Т.е. если браузер сообщает, что проверка не пройдена, мы анбиндим функцию с клика на сабмит, кликаем сабмит (браузер покажет нативные сообщения), и сразу же биндим функцию обратно.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы