#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>