Форма отправляется, несмотря на метод PreventDefault() из-за другого прослушивателя событий.Html

Программисты Html
Ответить
Anonymous
 Форма отправляется, несмотря на метод PreventDefault() из-за другого прослушивателя событий.

Сообщение Anonymous »

У меня есть два прослушивателя событий: один для обработки формы, а другой для кнопок «Добавить в корзину». Когда события запускаются, почтовый запрос отправляется на сервер, который обрабатывает соответствующие данные, поэтому мне нужно, чтобы форма не отправлялась, а обрабатывалась сервером.
До реализации EventListeners, который обрабатывает кнопки «Добавить в корзину», форма работала как задумано с использованием event.preventDefault();. Однако с помощью EventListener кнопок форма теперь отправляется и направляет меня в /login. Я испробовал каждое найденное решение, я использовал .stopPropagation(), .preventDefault() и return=false; для обоих слушателей, я изменил кнопки на элементы div. Однако форма не будет работать должным образом, пока я полностью не удалю второй EventListener.
Я бы заменил элемент формы на элемент div, но он должен оставаться в виде HTML-формы, поэтому мне нужно найти решение этой проблемы.
Я включаю приведенный ниже код, заранее спасибо:
window.onload =function formSubmit(){
const form = document.getElementById('login-form');
form.addEventListener('submit', event => {

event.preventDefault(); // prevent the form from submitting
const username = form.elements.username.value;
const password = form.elements.password.value;
login(username, password);

});
}

//addbuttons are added dynamically after the other elements are already loaded so im putting a timeout for queryselector to gather them
setTimeout(window.onload =function productRequest(){
const purchaseBtns = document.querySelectorAll('.purchase-button');

purchaseBtns.forEach((btn) =>{
btn.addEventListener('click', () => {
var product_selected;
for(i in products){
if(products.id == btn.dataset.productId){
product_selected = products;
}
}
addToCart(product_selected);

});

});

}, 1000);


Подробнее здесь: https://stackoverflow.com/questions/750 ... ntlistener
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Html»