Foros del Web » Programando para Internet » Javascript »

No enviar un formulario

Estas en el tema de No enviar un formulario en el foro de Javascript en Foros del Web. Hola foreros!, Estoy intentando hacer que al pulsar en un submit el formulario no se envie. Se que si pongo onsubmit='return false' el formulario no ...
  #1 (permalink)  
Antiguo 21/05/2010, 03:59
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años, 1 mes
Puntos: 19
No enviar un formulario

Hola foreros!,

Estoy intentando hacer que al pulsar en un submit el formulario no se envie. Se que si pongo onsubmit='return false' el formulario no se envia y todo eso. Pero buscaba hacerlo sin ponerlo.

¿Como podria hacerlo?... he intentado varias cosillas como añadirle la propiedad:

Código PHP:
Ver original
  1. mi_form.onsubmit=return false;
Pero me da error. Tambien he probado a poner en la funcion js que ejecuta el boton submit return false, pero tampoco la detiene.

¿Como podria hacerlo sin añadirle nada a la etiqueta form?
  #2 (permalink)  
Antiguo 21/05/2010, 04:12
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: No enviar un formulario

Usa un boton tipo "button" y en el onclik de este puedes hacer lo que quieras... incluso mandar el formulario... o no.

Quim
  #3 (permalink)  
Antiguo 21/05/2010, 04:42
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años, 1 mes
Puntos: 19
Respuesta: No enviar un formulario

Hola quimfv,

Eso pensaba hacer... pero no me gustaba ni un pelo... por si no se tiene le js activa... que ya se que pocas personas no lo tendran... pero no es lo correcto... De hecho mira el link:

http://www.forosdelweb.com/f13/como-...r-form-385898/

Donde hablan de detener un formulario, asi que estoy en las mismas tengo un input submit que deseo que al pulsar no se envie el formulario en el que se encuentra, pero no puedo cambiar ni de tipo de input ni añadir onsubmit='return false' a su form.

¿Se podra hacer de algun modo?, he estado mirando añadirle la etiqueta al form en la misma funcion que ejecuta el input submit... pero no puedo o editar los eventos... pero no he tenido suerte.

¿Alguien da mas...? jeje... no hay forma!.
  #4 (permalink)  
Antiguo 21/05/2010, 08:03
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: No enviar un formulario

hay forma, solo que me parece que no lo estas haciendo de la forma correcta. para cancelar el envio se devuelve false en el evento onsubmit, creo que eso lo sabes. pero me parece que estas fallando en el elemento donde se registra el evento. el evento se registra en el elemento FORM, no en el INPUT SUBMIT. eso por un lado...

por otro lado, si bien entiendo lo quieres registrar desde javascript. debes considerar que los eventos son como funciones normales. en otras palabras, a los eventos le asignas funciones.
Código:
// si tienes la funcion definida;
form.onsubmit = fn;
function fn(){
...
return false;
}

// con funcion anonima;
form.onsubmit = function(){
...
return false;
}

// funcion definida que requiere parametro;
form.onsubmit = function(){
return fn(parametros);
}
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 21/05/2010, 09:29
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años, 1 mes
Puntos: 19
Respuesta: No enviar un formulario

Hola zerokilled,

Pues la verdad no lo tenia tan claro, jeje... ahora que me fijo veo practicamente todas mis funciones de ese modo... pero no lo veia tan claro como eso... jeje... me ha gustado eso de pensar en que los eventos son funciones... jeje.

Muchas gracias... ya lo he probado y funcion perfect!.

Hasta pronto!.

Etiquetas: enviar, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:40.