Foros del Web » Programando para Internet » Javascript »

Bloquear un submit

Estas en el tema de Bloquear un submit en el foro de Javascript en Foros del Web. Hola a todos, estoy validando un formulario y quiero que haga una funcion cuando haga click en enviar , el problema es que envia los ...
  #1 (permalink)  
Antiguo 28/08/2006, 16:32
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 1 mes
Puntos: 62
Bloquear un submit

Hola a todos, estoy validando un formulario y quiero que haga una funcion cuando haga click en enviar, el problema es que envia los datos y quisiera bloquear ese proceso en criterio a unas funciones, ejemplo que si no estan todos los campos rellenos que no lo envie.

He querido solucionar con onMouseOver, onFocus o con onClick pero siempre envia el formulario, alguna idea?

muchas gracias eskerrik asko!! ;)
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #2 (permalink)  
Antiguo 28/08/2006, 16:54
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
no utilices el boton submit, utiliza el type="button" y le pones en el onClick="javascript: tufuncionvalidar();" o bien en el <form ... onSubmit="javascript: tufuncionvalidar;return false;">

espero y te sea de ayuda
saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #3 (permalink)  
Antiguo 28/08/2006, 17:01
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 1 mes
Puntos: 62
;)

y para hacer el submit como lo hago con ese boton ya que quiero enviar datos por metodo post.
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #4 (permalink)  
Antiguo 28/08/2006, 17:21
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 1 mes
Puntos: 62
He probado con
Código:
document.elnombredemiformulario.submit()
y ni lo envia, lo que si hace es vaciar todos los campos.

¿?!!!!
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #5 (permalink)  
Antiguo 28/08/2006, 17:45
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
si dices que estas validando los campos lo mas seguro es que tengas una funcion para hacerlo, entonces debes de tener algo así:
Código HTML:
<script language="javascript">
function Validar()
{
//datos de validacion...
//y al final
document.forms['enviar'].submit();
}
</script>
<form name="enviar" method="post" action="otrapagina">
<!--tus cajas de texto-->
<input type="text">
<input type="text">
<input type="text">
<input name="enviar" type="button" onClick="javascript:Validar()">
</form> 
así debe de funcionar, si no es así, lo mejor es que coloques tu código.
suerte.
saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #6 (permalink)  
Antiguo 28/08/2006, 19:02
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
No, no, no...

LOs botones parea enviar un formulario deben ser de tipo submit y las validaciones deben hacerse con el evento submit (manejador onsubmit) de la etiqueta form... la función de validación debe devolver (return) true o false... en el primero de los casos pasa la validación y en el segundo no (solo se envía cuando pasa...)

Ejemplo sencillo donde se valida que un campo de texto este vacío:

function valida(formulario) {
return (formulario.texto.value != "");
}

<form action="" method="get" onsubmit="return valida(this)">
<input type="text" name="texto" value="" />
<input type="submit" value="enviar si hay texto" />
</form>

Con el método get se puede ver los parámetros del form en la URL pero vale cualquier método...

La función de validación y el evento deben tener return lo_que_sea

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #7 (permalink)  
Antiguo 29/08/2006, 04:31
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 1 mes
Puntos: 62
;)

Código:
document.forms['enviar'].submit();
asi tampoco hace.

caricatos si no estuviese vacio enviaria el formulario, pero no me aclaro si tengo que hacer una funcion mas amplia, con mas campos y demas.
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #8 (permalink)  
Antiguo 29/08/2006, 05:02
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 1 mes
Puntos: 62
Al final he echo un Boton Validar que despues de validar bloquea los input's y desbloquea la opcion SUBMIT. Luego tengo un boton borrar que resetea el formulario quitando el bloqueo a los input's y devolviendole el bloqueo al submit.

PD: Lo de bloquear input's document.formulario.nombre_input.readOnly=true o false

y lo del boton con document.formulario.nombre_boton.disabled=true o false

espero que os sirva ;)
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #9 (permalink)  
Antiguo 29/08/2006, 09:22
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

ZiTAL: Puse un ejemplo muy básico, de memoria (no hacen falta amplios conocimientos)... lo de ampliar la función de validación... será cuestión de las necesidades de cada uno. En las FAQs hay un script de validación genérico que amablemente nos ha dejado su autor.

Puedes hacer lo que quieras, y me alegro de que hayas solucionado tu problema, pero por lo visto no lo has hecho de la mejor manera... si quieres más ayuda, puedes contar con nosotros.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
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 09:31.