Подскажите, как разрешить отправку формы без обновления страницы
Пишу валидацию данных формы. При неправильном вводе данных, появляется запрет на отправку формы, но при исправлении данных и повторной отправке - запрет действителен.
<script>
const EMAIL_REGEXP = /^(([^<>()[\].,;:\s@"]+(\.[^<>()[\].,;:\s@"]+)*)|(".+"))@(([^<>()[\].,;:\s@"]+\.)+[^<>()[\].,;:\s@"]{2,})$/iu;
const NUMBER_REGEXP = /^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$/;
function isEmailValid(value) {
return EMAIL_REGEXP.test(value);
}
function isTelValid(value) {
return NUMBER_REGEXP.test(value);
}
$(document).ready(function(){
$("#email").change(function () {
let input = document.getElementById('email');
let form = document.querySelector('form');
if (isEmailValid(input.value)) {
input.style.borderColor = 'green';
} else {
input.style.borderColor = 'red';
form.addEventListener('submit', function(event) {
event.preventDefault();
});
}
});
$("#tel").change(function () {
let input1 = document.getElementById('tel');
let form = document.querySelector('form');
if (isTelValid(input1.value)) {
input1.style.borderColor = 'green';
} else {
input1.style.borderColor = 'red';
form.addEventListener('submit', function(event) {
event.preventDefault();
});
}
});
});
</script>
</head>
<body>
<form th:action="'/new-order'" class="form" method="post">
<input type="text" name="email" id="email" placeholder="ivanov@mail.ru" required />
<input type="number" name="tel" id="tel" placeholder="+7" required />
<button type="submit" id="form_submit">Подтверждение заказа</button>
</form>
Помогите, пожалуйста, как можно повторять цикл проверки без перезагрузки страницы
Источник: Stack Overflow на русском