Una forma de detener el envío del formulario es devolver falso desde su función de JavaScript.
Cuando se hace clic en el botón Enviar, se llama a una función de validación. Tengo un caso de validación de formulario. Si se cumple esa condición, invoco una función llamada returnToPreviousPage ();
function returnToPreviousPage() {
window.history.back();
}
Estoy usando JavaScript y Dojo Toolkit .
En lugar de volver a la página anterior, envía el formulario. ¿Cómo puedo cancelar este envío y volver a la página anterior?
javascript
html
forms
Muhammad Imran Tariq
fuente
fuente
Respuestas:
Puede usar el valor de retorno de la función para evitar el envío del formulario
y funcionan como
En el caso de Chrome 27.0.1453.116 m si el código anterior no funciona, establezca el campo returnValue del parámetro del controlador de eventos en falso para que funcione.
Gracias Sam por compartir información.
EDITAR:
Gracias a Vikram por su solución para if validateMyForm () devuelve false:
donde validateMyForm () es una función que devuelve falso si falla la validación. El punto clave es usar el evento de nombre. No podemos usar para egepreventDefault ()
fuente
false
no parece tener ningún efecto; Chrome aún envía el formulario. Por ejemplo,onsubmit="return false;"
. Sin embargo, establecer elreturnValue
campo del parámetro del controlador de eventos enfalse
sí funciona para mí.validateMyForm()
tiene erroresreturn false
no se alcanzará. Entonces esto puede fallar. Después de muchas horas, encontré una solución que funciona y la publiqué a continuación.Usar prevenir defecto
Dojo Toolkit
jQuery
JavaScript vainilla
fuente
target
.Lo siguiente funciona a partir de ahora (probado en Chrome y Firefox):
Donde validateMyForm () es una función que devuelve
false
si falla la validación. El punto clave es usar el nombreevent
. No podemos usar por eje.preventDefault()
.fuente
Simplemente use un
button
botón simple en lugar de enviar. Y llame a una función de JavaScript para manejar el envío del formulario:Función dentro de una
script
etiqueta:También puedes probar
window.history.forward(-1);
fuente
required
no funcionarán.Muchas formas difíciles de hacer algo fácil:
fuente
Todas sus respuestas dieron algo para trabajar.
Finalmente, esto funcionó para mí: (si no elige al menos un elemento de casilla de verificación, advierte y permanece en la misma página)
fuente
Base en la respuesta de @Vikram Pudi, también podemos hacer esto con Javascript puro
fuente
Recomendaría no usar
onsubmit
y adjuntar un evento en el script.Luego use
preventDefault()
(oreturnValue = false
para navegadores antiguos).fuente
onsubmit
?JS
lugar deHTML
usar atributos. De esa manera, no necesita saltar tanto mientras lee el código de otra personaDigamos que tienes un formulario similar a este
Aquí está el javascript para la función confirmAction
Este funciona en Firefox, Chrome, Internet Explorer (edge), Safari, etc.
Si ese no es el caso, hágamelo saber
fuente
preventDefault()
yreturnToPreviousPage()
es perfecta y elegante. Interrumpe el funcionamiento normal al igual que diseñaría cualquier receptor de excepciones para que funcione. +1.Las respuestas de Hemant y Vikram no funcionaron para mí directamente en Chrome. El evento.preventDefault (); la secuencia de comandos evitó que la página se enviara independientemente de aprobar o no la validación. En cambio, tuve que mover el evento.preventDefault (); en la declaración if de la siguiente manera:
Gracias a Hemant y Vikram por ponerme en el camino correcto.
fuente
Por ejemplo, si tiene el botón Enviar en el formulario, para detener su propagación, simplemente escriba event.preventDefault (); en la función que se llama al hacer clic en el botón Enviar o en el botón Intro.
fuente
Simplemente hazlo ...
y aquí va tu JQuery
fuente