Форма, которая уже подтверждена JS. Необходимо иметь это также очистить поля при отправке - PullRequest
1 голос
/ 21 февраля 2020

У меня есть веб-форма, которая является частью CMS, поэтому я не могу изменить поле ввода кнопки отправки. Форма уже проверяется JS, поэтому мне нужно добавить строку в существующий код ниже, который очистит поля.

В настоящее время страница перенаправляется на страницу с благодарностью при отправке. Я хочу, чтобы это продолжалось. Но в настоящее время, если пользователь нажимает кнопку «Назад» в своем браузере, данные все еще там. Мне нужно отправить данные, очистить поля, а затем перенаправить на страницу благодарности.

 $('form').submit(function(event)
    {
      if (validateForm())
        return true;

      event.preventDefault();
    });

Ответы [ 2 ]

0 голосов
/ 21 февраля 2020

Вы пытались добавить document.querySelector('form').reset() над оператором возврата? В jquery это может быть просто $(this).reset(), я не уверен.

0 голосов
/ 21 февраля 2020
if (data.status) {
    $(this).find('input').val('');
    // code to redirect to success page here
}

Если форма успешно отправлена, тогда установите значение всех входов в отправленной форме в строку длиной 0.

 $('form').submit(function(event) {
    event.preventDefault();
    if (!validateForm()) {
      return false;
    } else {
      formSubmit($(this));
    }
  }
 );

  function formSubmit(form) {
    var url = form.attr('action');
    var method = form.attr('method');
    var data = form.serialize();
    $.ajax({
          method: method
        , url: url
        , data: data
    })
    .done(function (data) {
        try {
            $(this).find('input').val('');
            // code to redirect to success page here
        } catch (e) {
            console.log(e);
        }
    });
  }

Проверка FE - плохая практика, по моему честному мнению , просто хорошо для снижения количества HTTP-запросов к серверу. Верификация данных в твердой форме должна происходить на BE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...