Tengo un modal de arranque, donde tengo pocos botones para capturar comentarios.
Quiero llamar a una función JS al hacer clic en uno de los botones.
Sin embargo, al hacer clic en el botón, el modal simplemente se cierra sin llamar a la función JS.
Pero, si hago el mismo evento onclick en cualquier otro elemento que no esté en el modal, funciona bien.
js
<script> function sayHello() { alert("Demo Alert") } </script>HTML
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true" > <div class="modal-dialog modal-lg modal-dialog-centered" role="document" > <div class="appie-signup-area"> <div class="container"> <div class="row"> <div class="col-lg-12"> <div class="appie-signup-box"> <h3 class="title">How was the Session?</h3> <form action="#" id="mood-tracker"> <div class="row"> <div class="input-box"> <button type="submit" value="Good" onclick="sayHello()"> <i class="fa fa-smile" ></i >Good </button> </div> </form> </div> </div> </div> </div> </div> </div> </div>¿Dónde me estoy equivocando?
No utilice el tipo de botón "enviar". Use el tipo "botón" en lugar de así:
<button type="button" value="Good" onclick="sayHello()"><i class="fa fa-smile"></i>Good </button>C debe ser capitular
usar onClick no onclick
<button type="button" onClick="sayHello()">Button</button>Creo que deberías usarwindow.confirm() en lugar de window.alert() .
HTML
<button type="submit" value="Good" onclick="sayHello()">JS
function sayHello() { return confirm('Demo Alert'); }Encontré esta respuesta en otra página de desbordamiento de pila: HTML: ¿cómo hacer una ventana emergente de confirmación en un botón Enviar y luego enviar la solicitud?