Валидация полей ajax js
господа. Столкнулся с проблемой при отправке формы с сайта на почту. Есть скрипт, который успешно работает и отправляет данные без перезагрузки страницы. Решил сделать валидацию полей, так как при подключении данного скрипта дефолтная валидация bootstrap не работает. Попробовал запихнуть уже реализованный скрипт в проверку $("#form").validate({, валидация заработала, однако, при нажатии кнопки "Отправить" меня бросает на новую страницу с текстом каллбэка. Если же убрать вышеупомянутую строку - все работает (без валидации). Ниже креплю js, который у меня получился. Прошу не ругать, если есть элементарные ошибки, js только осваиваю :) Прошу помощи, заранее благодарю :)
function ajaxFormRequest(result_id,form_id,url) {
$("#"+form_id).validate({
jQuery.ajax({
url: url,
type: "POST",
dataType: "html",
data: jQuery("#"+form_id).serialize(),
success: function(response) {
document.getElementById(result_id).innerHTML = response;
},
error: function(response) {
document.getElementById(result_id).innerHTML = "<b>При отправке данных возникла ошибка</b>";
}
});
$(':input','#'+form_id)
.not(':button, :submit, :reset, :hidden')
.val('')
.removeAttr('checked')
.removeAttr('selected');;
}); }
Код кнопки "Отправить"
<div style="color: white;" class="boot-center pt-3" id="messegeResult"><button class="boot" type="submit" onclick="ajaxFormRequest('messegeResult', 'fcontact', 'php/form-contact.php')">Отправить</button></div>
Также пытался реализовать сие следующим образом, что тоже не увенчалось успехом (валидация работает, но форма отправляется с переходом на новую страницу):
function ajaxFormRequest(result_id,form_id,url) {
$(form_id).submit(function (event) {
event.preventDefault();
if ($(form_id)[0].checkValidity() === false) {
event.stopPropagation();
} else {
jQuery.ajax({
url: url,
type: "POST",
dataType: "html",
data: jQuery("#"+form_id).serialize(),
success: function(response) {
document.getElementById(result_id).innerHTML = response;
},
error: function(response) {
document.getElementById(result_id).innerHTML = "<b>При отправке данных возникла ошибка</b>";
}
});
$(':input','#'+form_id)
.not(':button, :submit, :reset, :hidden')
.val('')
.removeAttr('checked')
.removeAttr('selected');
}
});
}