tengo un boton Necesito hacer que se pueda hacer clic solo una vez. Pero no tiene el atributo onclick. Y no puedo cambiar HTML. Esto tiene que hacerse sólo con JS. ¿Cómo lo hago?
<button type="submit" name="add-to-cart" value="41" class="single_add_to_cart_button button alt"> BUY NOW </button>Puede adjuntar un controlador de click al botón y establecer su propiedad disabled en true :
const button = document.querySelector('button[name="add-to-cart"]'); button.addEventListener('click', function () { button.disabled = true; }); <button type="submit" name="add-to-cart" value="41" class="single_add_to_cart_button button alt">BUY NOW</button>Si alguna vez necesita volver a habilitar el botón, esa sería una lógica adicional, por supuesto. Pero parece que este botón está destinado a enviar un formulario que cambiará el contexto de la página de todos modos.
Puede un detector de eventos ('clic') y cambiar agregar el atributo. Después de eso, elimine el detector de eventos.