Foros del Web » Programando para Internet » Javascript »

No submit();

Estas en el tema de No submit(); en el foro de Javascript en Foros del Web. Hola, tengo este problema que me esta matando, resulta que tengo un formulario que se valida con una función onsubmit y todo bien, pero quiero ...
  #1 (permalink)  
Antiguo 20/05/2010, 10:59
Avatar de Cero_Cool  
Fecha de Ingreso: abril-2007
Ubicación: Chile
Mensajes: 113
Antigüedad: 17 años
Puntos: 6
No submit();

Hola, tengo este problema que me esta matando, resulta que tengo un formulario que se valida con una función onsubmit y todo bien, pero quiero que luego de validarse correctamente y enviarse, se limpie el formulario y no logro conseguirlo, por favor ayuda !!!!, ya estoy se-mi desesperado XD. solo voy a poner la parte del codigo importante.

Código HTML:
 <form action="../capa_negocio/proceso2.php" method="post" name="materiales" target="iframe_mats" onsubmit="return articulos()"   id="materiales">

....
...
...

  <input name="enviar" type="button" class="botones" id="button" value="Agregar a la lista" />
  </form> 

Y esta es la función javascript:

Código PHP:
function articulos ()
{
    if (
document.materiales.mat.value !="" && document.materiales.cantidad_mat.value =="")
       {
           if(
document.materiales.mat.value.replace(/ /g'') == '')
             {
             
alert("No se aceptan espacios en blanco en el artículo 1");
             
document.materiales.mat.select();
             
document.materiales.mat.focus();
             return 
false;
             }
           
alert("Debe ingresar la cantidad de artículos");
           
document.materiales.cantidad_mat.focus(); return false;
       }
    if (
document.materiales.mat.value =="" && document.materiales.cantidad_mat.value !="")
       {
           
alert("Debe ingresar el nombre del artículo 1");
           
document.materiales.mat.focus(); return false;
       }
    if (
document.materiales.mat.value !="" && document.materiales.cantidad_mat.value !="")
       {
           if(
document.materiales.mat.value.replace(/ /g'') == '')
             {
             
alert("No se aceptan espacios en blanco en el artículo 1");
             
document.materiales.mat.select();
             
document.materiales.mat.focus();
             return 
false;
             }
       }
////////////////////////////////////////////////////////////////////////////////////////////////////////
     
document.materiales.submit();
     
materiales.reset();

  #2 (permalink)  
Antiguo 20/05/2010, 12:31
Avatar de Cero_Cool  
Fecha de Ingreso: abril-2007
Ubicación: Chile
Mensajes: 113
Antigüedad: 17 años
Puntos: 6
Respuesta: No submit();

Bien, ya encontré la solución, y fue en este mismo foro en el post de otro joven aproblemado como yo XD. simplemente de agregue un delay al reset de esta forma:

document.materiales.submit();
setTimeout("materiales.reset()",200);

aparentemente el submit se ejecuta pero el reset es mas rápido y no se alcanzan a enviar los datos cuando ya el reset los borro.
  #3 (permalink)  
Antiguo 20/05/2010, 12:52
 
Fecha de Ingreso: febrero-2010
Mensajes: 39
Antigüedad: 14 años, 3 meses
Puntos: 2
Respuesta: No submit();

y si por alguna casualidad el submit ese se ejecuta mas lento en el PC de alguien? tendras el mismo problema, no seria mejor que la pagina rebotara y si el envio de datos ha sido correcto limpiarlo todo?
  #4 (permalink)  
Antiguo 20/05/2010, 13:32
Avatar de _cronos  
Fecha de Ingreso: abril-2010
Mensajes: 135
Antigüedad: 14 años
Puntos: 1
Respuesta: No submit();

Eso es cierto, además 200 ms es un margen muy pequeño de error.
  #5 (permalink)  
Antiguo 24/05/2010, 20:41
Avatar de Cero_Cool  
Fecha de Ingreso: abril-2007
Ubicación: Chile
Mensajes: 113
Antigüedad: 17 años
Puntos: 6
Respuesta: No submit();

mmm. no había considerado esa opción. veré que puedo hacer al respecto, gracias

Etiquetas: submit
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 07:28.