El texto del botón no se actualiza cuando se activa el evento. Este es un evento de envío, pero también probé un evento de clic. También probé el código fuera del detector de eventos y funciona correctamente. Entonces, el problema parece estar dentro del detector de eventos. Aquí está el código:
let addToCartForms = document.querySelectorAll(".bundle-builder--add-to-bundle-form"); addToCartForms.forEach((el)=>{ let btn = el.querySelector('.add-to-cart'); let btnText = btn.innerText; el.addEventListener("submit",(e)=>{ btn.innerText = "added" }); })click y submit trabajo. ¿Quizás el formulario se envió para que no pueda ver el efecto?
let addToCartForms = document.querySelectorAll(".bundle-builder--add-to-bundle-form"); addToCartForms.forEach((el) => { let btn = el.querySelector('.add-to-cart'); let btnText = btn.innerText; el.addEventListener("submit", (e) => { btn.innerText = "added" }); }) <form class="bundle-builder--add-to-bundle-form"> <button class="add-to-cart">click</button> </form>Tal vez esta solución jQuery podría funcionar.
$('body').on('submit', '.bundle-builder--add-to-bundle-form .add-to-cart', function(e){ (e).preventDefault(); (this).text('added'); setTimeout(function() { (this).submit()},500) })