Сделайте что-нибудь после проверки полей и перед отправкой формы

#javascript #jquery #forms

Вопрос:

Мне нужно выполнить определенный код после проверки всех входных данных формы (я не хочу проверять ее вручную), но прежде чем она отправит информацию в серверную часть.

Я должен проверить, установлен ли пользовательский флажок, и если я нажму отправить с этим кодом:

 $('my_form').on('click', function (e) {
    if (!$('custom_checkbox').is(':checked')) {
        e.preventDefault();
        $('.termsError').fadeIn();
        return;
    }
});
 

Он будет показывать только обратную связь об ошибках для флажка, но не для остальных входных данных.

Как я могу этого достичь?

Спасибо!

Комментарии:

1. Можете ли вы показать свои другие чеки?

2. Других проверок нет, я не хочу делать никаких проверок вручную, что я хочу, так это найти способ выполнения кода после проверки полей (часть процесса, когда вы нажимаете «Отправить») и перед отправкой всех данных в резервную копию. Я говорю здесь о туземном процессе.

Ответ №1:

Вы можете поместить прослушиватель на кнопку «Отправить», а затем программно отправить форму, если она соответствует вашим условиям проверки.

 $('button[type=submit]').on('click', function(e) {
  e.preventDefault() // stop the auto submission
  if (!$('#custom_checkbox').is(':checked')) {
    $('.termsError').fadeIn();
    return;
  } else {
    console.log('SUBMIT')
    // uncomment out the next line
    //$('#myForm').submit();
  }
}); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form id='myForm'>
  <div class='termsError' hidden>Please submit to the terms first</div>
  <label><input type='checkbox' id="custom_checkbox" name='custom_checkbox' /> I agree to the terms</label>
  <button type='submit'>Submit</button>
</form>