Foros del Web » Programando para Internet » Javascript »

2 funciones en onsubmit

Estas en el tema de 2 funciones en onsubmit en el foro de Javascript en Foros del Web. Hola, saludos a todos. Tengo un problema con estas 2 funciones java script, ya que creo llamarlas correctamente desde onsubmit, per solo se ejecuta la ...
  #1 (permalink)  
Antiguo 18/04/2010, 16:05
Avatar de Cero_Cool  
Fecha de Ingreso: abril-2007
Ubicación: Chile
Mensajes: 113
Antigüedad: 17 años
Puntos: 6
2 funciones en onsubmit

Hola, saludos a todos. Tengo un problema con estas 2 funciones java script, ya que creo llamarlas correctamente desde onsubmit, per solo se ejecuta la primera, la cual valida que los campos estén llenos, y la segunda valida que no se envíen 2 veces los datos del formulario.
He probado de estas formas y nada:

Código PHP:
onSubmit="return validar() && nodoblenvio();" 
La funcion de no doble envio posee este codigo:

Código PHP:
var cuenta=0;
function 
nodoblenvio() { 
if (
cuenta == 0)
{
cuenta++;
return 
true;
}
else 
{
alert("Los datos ya se han enviado, por favor aguarde un instante");
return 
false;
}

Se que los links a las funciones que se encuentran en otros ficheros estan bien porque cada una por si sola funciona correctamente.

MUCHAS GRACIAS DE ANTEMANO POR TODO. POR FAVOR AYUDENME !
  #2 (permalink)  
Antiguo 18/04/2010, 16:13
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: 2 funciones en onsubmit

Hola:

No se ve lo que devuelve "validar()", pero suponiendo que está bien, deberías usar paréntesis.

Si no es así, deberíamos ver el código de esa función.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 18/04/2010, 16:25
Avatar de Cero_Cool  
Fecha de Ingreso: abril-2007
Ubicación: Chile
Mensajes: 113
Antigüedad: 17 años
Puntos: 6
Respuesta: 2 funciones en onsubmit

Cita:
Iniciado por caricatos Ver Mensaje
Hola:

No se ve lo que devuelve "validar()", pero suponiendo que está bien, deberías usar paréntesis.

Si no es así, deberíamos ver el código de esa función.

Saludos
Hola, muchas gracias por la pronta respuesta.
Parentesis ?, donde ?.... creo que no lo entendí, pero te mostrare el codigo de la funcion validar y el form

funcion validar:
Código PHP:
function validar()
          {
              
if (
document.nuevaorden.sel.options[document.nuevaorden.sel.selectedIndex].value =="0")
    {
    
alert("Seleccione el área de destino");
    
document.nuevaorden.sel.focus(); return false;
    }
    
    
//Comprobamos que los campos esten llenos
    
if(document.nuevaorden.descripcion.value.length==0)
    {
    
alert('Ingrese la descripción de la orden');
    
document.nuevaorden.descripcion.select();
    
document.nuevaorden.descripcion.focus();
    return 
false
    
}
    
//Comprobamos que no se acepten espacios en blanco    
    
if(document.nuevaorden.descripcion.value.replace(/ /g'') == '')
    {
alert("No se aceptan espacios en blanco");
document.nuevaorden.descripcion.select();
document.nuevaorden.descripcion.focus();
return 
false;
    }
    

document.nuevaorden.submit(); 
          } 

Y la etiqueta form es simplemente:
Código HTML:
<form  name="nuevaorden" action="graba.php" method="post" onSubmit="return validar() && nodoblenvio();">
.
.
.
</form> 
  #4 (permalink)  
Antiguo 18/04/2010, 16:40
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: 2 funciones en onsubmit

Hola:

Cuando entra la función validar() y la pasa encuentra una instrucción submit() forzándolo... en principio prueba quitándo esa línea... si el botón es del tipo submit, no tienes luego que forzarlo.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 18/04/2010, 16:55
Avatar de Cero_Cool  
Fecha de Ingreso: abril-2007
Ubicación: Chile
Mensajes: 113
Antigüedad: 17 años
Puntos: 6
Respuesta: 2 funciones en onsubmit

Borre esta linea en el javascript

document.nuevaorden.submit();

pero aun asi no funciona, solo se ejecuta la primera funcion validar()y la segunda la omite.
  #6 (permalink)  
Antiguo 18/04/2010, 17:00
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: 2 funciones en onsubmit

Hola:

Pues solo faltan los paréntesis:
onSubmit="return (validar() && nodoblenvio())"

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #7 (permalink)  
Antiguo 18/04/2010, 17:08
Avatar de Cero_Cool  
Fecha de Ingreso: abril-2007
Ubicación: Chile
Mensajes: 113
Antigüedad: 17 años
Puntos: 6
Respuesta: 2 funciones en onsubmit

Hola .
No se que sera, pero le puse los parentesis y aun asi no funciona, esto ya me esta desesperando :(
  #8 (permalink)  
Antiguo 18/04/2010, 17:23
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: 2 funciones en onsubmit

Hola:

Parece que el código está bien, pero sólo tengo 4 ojos... ... ¿Te has fijado si hay algún error ?

Lo de select() no me suena a correcto...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #9 (permalink)  
Antiguo 18/04/2010, 17:34
Avatar de Cero_Cool  
Fecha de Ingreso: abril-2007
Ubicación: Chile
Mensajes: 113
Antigüedad: 17 años
Puntos: 6
Respuesta: 2 funciones en onsubmit

Cita:
Iniciado por caricatos Ver Mensaje
Hola:

Parece que el código está bien, pero sólo tengo 4 ojos... ... ¿Te has fijado si hay algún error ?

Lo de select() no me suena a correcto...

Saludos
Los borre para probar pero aun asi nada... esto si que es extraño.
  #10 (permalink)  
Antiguo 18/04/2010, 19:09
Avatar de Cero_Cool  
Fecha de Ingreso: abril-2007
Ubicación: Chile
Mensajes: 113
Antigüedad: 17 años
Puntos: 6
De acuerdo Respuesta: 2 funciones en onsubmit

YA LO PUDE SOLUCIONAR!!!!
Me tomo bastante tiempo dar con la solución pero aquí esta:
Simplemente llame a la segunda función ( nodoblenvio() ) desde la primera (validar()), y en el form solo llamo a la función validar()

A modo de ayuda, estas funciones sirven de ejemplo para validar campos que no estén vacios en un formulario y luego no permitir que se envíen más de 1 ves al intentar presionar el botón de envío del form reiteradas veces.


Código PHP:
function validar()
          {
         
if (
document.nuevaorden.sel.options[document.nuevaorden.sel.selectedIndex].value =="0")
    { 
     
    
alert("Seleccione el área de destino");
    
document.nuevaorden.sel.focus(); return false;
    }
    
    
//Comprobamos que los campos esten llenos
    
if(document.nuevaorden.descripcion.value.length==0)
    {
     
    
alert('Ingrese la descripción de la orden');
    
document.nuevaorden.descripcion.select();
    
document.nuevaorden.descripcion.focus();
    return 
false
    
}
    
    
//Comprobamos que no se acepten espacios en blanco    
    
if(document.nuevaorden.descripcion.value.replace(/ /g'') == '')
    {
     
    
alert("No se aceptan espacios en blanco");
    
document.nuevaorden.descripcion.select();
    
document.nuevaorden.descripcion.focus();
    return 
false;
    }
    
nodoblenvio();

Y ESTA ES LA FUNCION LLAMADA POR VALIDAR(), YO AL TENGO EN OTRO FICHERO.
Código PHP:

//Funcion que valida el doble click. y asi no envia dos veces los datos.
var cuenta=0;
function 
nodoblenvio() { 
if (
cuenta == 0)
{
cuenta++;
return 
true;
}
else 
{
alert("Los datos ya se han enviado, por favor espere un momento");
return 
false;
}

LUEGO, SIMPLEMENTE LLAMAMOS A VALIDAR DESDE EL FORM
Código HTML:
<form  name="nuevaorden" action="guarda.php" method="post" onSubmit="return validar();"> 
ESPERO QUE LE SIRVA A ALGUIEN PARA QUE NO PIERDA TODO EL TIEMPO QUE PERDI YO TRATANDO DE SOLUCIONAR ESTO QUE DE SEGURO ES IMPORTANTE. SALUDOS Y MUCHAS GRACIAS CARICATOS POR TU AYUDA Y ATENCION.

Etiquetas: funciones
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 12:31.