https://codepen.io/vladlerOK/pen/JwZxOZ
var scriptURL = 'https://script.google.com/macros/s/AKfycbz_YY59bLifVrQo66V3r5Me4_uU8qByuwmo1CUr0KlSdAITx5Q/exec';
submit.onclick = function(e) {
e.preventDefault();
// formObj.find('.form-group').slideUp();
$("form").find('.loader').fadeIn();
var formData = new FormData(document.forms.formw);
var phoneWa = $("#secondSelect").val() + $('input[name="phone"]').val();
formData.set('phone', phoneWa);
fetch(scriptURL, {
method: 'POST',
body: formData
}).then(function() {
setTimeout(function(e) {
window.location.href = "/thanks.html";
}, 200)
}).catch(function(error) {
formObj.find('.loader').fadeOut();
console.error('Error!', error.message);
});
};
В коде все плохо: на одну кнопку добавлен и обработчик jQuery, и нативный обработчик через присваивание onclick
.
Submit
вне формы не вызывает отправку формы, если не установлен атрибут form
.
В данном случае атрибут не установлен, поэтому отправка формы не будет выполнена в любом случае, и можно убрать вызов e.preventDefault()
как ненужный.
Проверки выполняются в обработчике добавленном jQuery
, что никак не влияет на обработчик добавленный через .onclick =
.
Из-за отсутствия проверок в последнем обработчике идет простой вызов fetch
и редирект.
Лобовым решением может стать вызов e.stopImmediatePropagation();
в случае когда запрос не должен быть послан в обработчике добавленном в jquery.
Лучшим решением было бы переписать полностью разметку и все обработчики в едином стиле.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Таблица заполняется рандомные цифрами и по нажатии на кнопку все столбцы должны быть отсортированы по убываниюПопробовал написать вот такой...
Пытаюсь обновить UI из другого потока, все вроде работает, но иногда ApplicationCurrent