validar validacion vacio formularios formulario enviar ejemplos con campos antes javascript webforms html-form confirm

validacion - Formulario HTML y confirmación de Javascript



validar formulario php antes enviar (3)

Funciona de esta manera porque es un botón de sumbit y el formulario se envía en todos los casos. Asigna una identificación al formulario y cambia el tipo de entrada:

<form method="post" id="formid"> <input type="button" value="Edit" onclick="confirmation()">

y llame a esta función al hacer clic:

function confirmation() { var answer = confirm("Are you sure you wish to edit?") if (answer) { document.getElementById("formid").submit(); } }

Tengo un problema al enviar un formulario y la confirmación de Javascript. Básicamente, se llama al siguiente Javascript cuando se presiona el botón "enviar".

function confirmation() { var answer = confirm("Are you sure you wish to edit?") if (answer) { window.location = "#editform2"; } }

Sin embargo, cuando pulso cancelar en lugar de aceptar, el Javascript se ejecuta correctamente, porque miro la barra de direcciones y no se actualiza a # editform2. El formulario, sin embargo, aún se envía. Parece actualizar la página. Aquí están las partes relevantes del formulario:

//Form is encoded in PHP <form method=/"post/"> //Form is in here <input type=/"submit/" value=/"Edit/" onclick=/"confirmation()/">

Entonces, el formulario no sabe a dónde va, solo actualiza la página, y la página también es el procesador. Así que está procesando aunque hice clic en cancelar y el Javascript debería mantenerlo en la misma página. Además de mover el procesamiento a una página diferente, ¿cuáles son mis soluciones?


No use el evento onclick del botón de enviar, use el evento onsubmit de su formulario:

document.forms[0].onsubmit = function () { return confirm("Are you sure you wish to edit?"); }

Es posible que desee agregar un atributo de identificación a su formulario para identificarlo.

Mantener el enlace de eventos en el código JavaScript; no en los atributos en línea en su HTML, hace que su código sea más fácil de mantener y depurar.


tratar:

return answer;

al final de la función y asegúrese de que el método onclick lo devuelva. Al igual que:

<input type="submit" value="Edit" onclick="return confirmation()">

Esto haría que la función devuelva falso y que no se publique el formulario.