Foros del Web » Programando para Internet » Javascript »

Validacion Problem form.submit

Estas en el tema de Validacion Problem form.submit en el foro de Javascript en Foros del Web. hola tengo un pequeño problema con lo ke es validar un boton buscar, el problema sucede cuando el campo texto esta vacio y esta al ...
  #1 (permalink)  
Antiguo 03/02/2006, 07:40
Avatar de calavera  
Fecha de Ingreso: diciembre-2005
Mensajes: 113
Antigüedad: 18 años, 4 meses
Puntos: 0
Validacion Problem form.submit

hola tengo un pequeño problema con lo ke es validar un boton buscar, el problema sucede cuando el campo texto esta vacio y esta al hacer click en buscar me envia el mensaje, PERO este pasa de inmediato a mostrarme el contenido de la tabla y no se keda en la misma pag. de busqueda.
Y lo otro es ke cuando posiciono el raton sobre el campo texto, al hacer enter este igual me manda a la pag. con los datos, lo cual no debería ser

SI ALGUIEN ME PUEDE AYUDAR SE LO AGRADECERE

Código PHP:
<script>
function 
validar(form)
{
var 
error "Por favor, antes de buscar complete:\n\n";
var 
""

    
if (form.buscar.value == "") { += " La categoria y\n  los Datos a buscar"; }
    
     if (
!= "") { alert(error a); return true; }

form.submit();

}
</script> 
Código HTML:
<input name="submit" type="submit" value="Buscar" onClick="validar(this.form)"> 
  #2 (permalink)  
Antiguo 03/02/2006, 08:18
Avatar de dacmonsalve  
Fecha de Ingreso: noviembre-2005
Ubicación: Colombia Tierra querida, himno de fe y armonia
Mensajes: 318
Antigüedad: 18 años, 5 meses
Puntos: 6
Hola

Código PHP:
function validar(form

 var 
error "Por favor, antes de buscar complete:\n\n"
 var 
"" 

    
if (form.buscar.value == "") { 
        
+= " La categoria y\n  los Datos a   buscar"
    }     
     if (
!= "") { 
          
alert(error a); return true
    }else{ 
         
form.submit(); 
    }

Espero te sirva..........SUERTE......
__________________
La mayor frustración es saber todas las respuestas,
pero que nadie te haga las preguntas
:Zzz:
.
  #3 (permalink)  
Antiguo 03/02/2006, 08:26
Avatar de calavera  
Fecha de Ingreso: diciembre-2005
Mensajes: 113
Antigüedad: 18 años, 4 meses
Puntos: 0
Pregunta Sigo con form. submit

Funciona pero al ingresar los datos y presionar buscar me genera un mensaje de error
El objeto no acepta esta propiedad o metodo,
esto es para form.submit

Código PHP:
<table width="650" border="0" cellpadding="0" cellspacing="0" bgcolor="">
    <!--
DWLayoutTable-->
    <
tr
      <
td width="143" height="23"></td>
      <
td colspan="8" valign="top"><hr></td>
      <
td width="164">&nbsp;</td>
    </
tr>
    <
tr
      <
td height="18"></td>
      <
td width="55"></td>
      <
td width="1"></td>
      <
td width="189"></td>
      <
td width="78"></td>
      <
td width="47"></td>
      <
td width="2"></td>
      <
td width="3"></td>
      <
td width="64"></td>
      <
td></td>
    </
tr>
    <
tr
      <
td height="8"></td>
      <
td></td>
      <
td></td>
      <
td></td>
      <
td colspan="3" rowspan="2" valign="top"> <select name="Equipos">
          <
OPTION value="Tipo">Tipo </OPTION>
          <
OPTION value="Marca">Marca </OPTION>
          <
OPTION value="Modelo">Modelo </OPTION>
          <
OPTION value="N_Serie">Nº de Serie </OPTION>
          <
OPTION value="Fecha_Compra">Fecha de Compra </OPTION>
          <
OPTION value="N_Factura">Nº de Factura </OPTION>
          <
OPTION value="Rut_Proveedor">Rut del Proveedor </OPTION>
          <
OPTION value="Rut_Asignado">Rut Asignado </OPTION>
        </
SELECT ></td>
      <
td></td>
      <
td></td>
      <
td></td>
    </
tr>
    <
tr
      <
td height="12"></td>
      <
td></td>
      <
td colspan="2" valign="top"><strong>Elija la Categoria a Buscar:</strong></td>
      <
td></td>
      <
td></td>
      <
td></td>
    </
tr>
    <
tr
      <
td height="56"></td>
      <
td></td>
      <
td>&nbsp;</td>
      <
td>&nbsp;</td>
      <
td>&nbsp;</td>
      <
td>&nbsp;</td>
      <
td></td>
      <
td></td>
      <
td></td>
      <
td></td>
    </
tr>
    <
tr
      <
td height="17"></td>
      <
td></td>
      <
td colspan="2" valign="top"><strong>Datos a Buscar:</strong> <br> </td>
      <
td colspan="2" valign="top"><input type="text" name="buscar" size="25" ></td>
      <
td></td>
      <
td></td>
      <
td></td>
      <
td></td>
    </
tr>
    <
tr
      <
td height="4"></td>
      <
td></td>
      <
td></td>
      <
td></td>
      <
td></td>
      <
td></td>
      <
td></td>
      <
td></td>
      <
td></td>
      <
td></td>
    </
tr>
    <
tr
      <
td height="1"></td>
      <
td></td>
      <
td></td>
      <
td rowspan="2" valign="top"><input name="Submit" type="submit" value="Imp.Todos.Reg. "></td>
      <
td></td>
      <
td></td>
      <
td></td>
      <
td></td>
      <
td></td>
      <
td></td>
    </
tr>
    <
tr
      <
td height="19"></td>
      <
td></td>
      <
td></td>
      <
td></td>
      <
td colspan="3" rowspan="2" valign="top"><input  type="button" name="submit" value="Buscar" onClick="validar(this.form)" ></td>
      <
td></td>
      <
td></td>
    </
tr>
    <
tr
      <
td height="1"></td>
      <
td></td>
      <
td></td>
      <
td></td>
      <
td></td>
      <
td></td>
      <
td></td>
    </
tr>
    <
tr
      <
td height="21"></td>
      <
td colspan="8" valign="top"><hr></td>
      <
td></td>
    </
tr>
    <
tr
      <
td height="93"></td>
      <
td></td>
      <
td></td>
      <
td></td>
      <
td></td>
      <
td></td>
      <
td></td>
      <
td></td>
      <
td></td>
      <
td></td>
    </
tr>
  </
table
Cita:
Iniciado por dacmonsalve
Código PHP:
function validar(form

 var 
error "Por favor, antes de buscar complete:\n\n"
 var 
"" 

    
if (form.buscar.value == "") { 
        
+= " La categoria y\n  los Datos a   buscar"
    }     
     if (
!= "") { 
          
alert(error a); return true
    }else{ 
         
form.submit(); 
    }

Espero te sirva..........SUERTE......
  #4 (permalink)  
Antiguo 03/02/2006, 09:48
Avatar de Dorita  
Fecha de Ingreso: junio-2005
Ubicación: Entre la silla y el escritorio
Mensajes: 97
Antigüedad: 18 años, 10 meses
Puntos: 0
compañero:

Código HTML:
<script>
function validar()
{
var error = "Por favor, antes de buscar complete:\n\n";
var a = ""

    if (form.buscar.value == "") { a += " La categoria y\n  los Datos a buscar"; }
    
     if (a != "") { alert(error + a); return false; }

}

return true;
</script>  


<form name="buscar" action="otra pagina.???" onSubmit="return validar()">

</form> 
si no t funciona postea el titulo del form, por q no aparece en el código q pusiste antes.-
salu2.-
__________________

<nick>Dorita</nick>...si lo sé, soy una ñoña ;)
  #5 (permalink)  
Antiguo 03/02/2006, 11:18
Avatar de calavera  
Fecha de Ingreso: diciembre-2005
Mensajes: 113
Antigüedad: 18 años, 4 meses
Puntos: 0
Return fuera de funcion

me genera el mensaje de, ke return esta fuera de la funcion

Cita:
Iniciado por Dorita
compañero:

Código HTML:
<script>
function validar()
{
var error = "Por favor, antes de buscar complete:\n\n";
var a = ""

    if (form.buscar.value == "") { a += " La categoria y\n  los Datos a buscar"; }
    
     if (a != "") { alert(error + a); return false; }

}

return true;
</script>  


<form name="buscar" action="otra pagina.???" onSubmit="return validar()">

</form> 
si no t funciona postea el titulo del form, por q no aparece en el código q pusiste antes.-
salu2.-
  #6 (permalink)  
Antiguo 03/02/2006, 11:29
Avatar de dacmonsalve  
Fecha de Ingreso: noviembre-2005
Ubicación: Colombia Tierra querida, himno de fe y armonia
Mensajes: 318
Antigüedad: 18 años, 5 meses
Puntos: 6
entonces coloca el "return true"; antes de la ultima llave "}"
__________________
La mayor frustración es saber todas las respuestas,
pero que nadie te haga las preguntas
:Zzz:
.
  #7 (permalink)  
Antiguo 03/02/2006, 12:28
Avatar de calavera  
Fecha de Ingreso: diciembre-2005
Mensajes: 113
Antigüedad: 18 años, 4 meses
Puntos: 0
Hay Mas Ideas ?????????????????'

NO SE KE SE SUPONIA KE HACIA ESTO, PERO NO ME GENERO NADA,
SI ALGUIEN TIENE MAS OPCIONES,,
SE LOS AGRADECERE MUCHO

Cita:
Iniciado por dacmonsalve
entonces coloca el "return true"; antes de la ultima llave "}"
  #8 (permalink)  
Antiguo 03/02/2006, 13:29
Avatar de Dorita  
Fecha de Ingreso: junio-2005
Ubicación: Entre la silla y el escritorio
Mensajes: 97
Antigüedad: 18 años, 10 meses
Puntos: 0
Compañero Calavera:

haber, aclaremos algunas cosas:

esto es un formulario cierto? tu formulario tiene un nombre (pongámosle que se llama formulario1), y al momento de hacer el envío del formulario, los datos van a alguna parte, ya sea a la misma página u a otra. pongamos por ejemplo que al hacer el submit del formulario los datos van a una página que se llama otraPagina.html. entonces, en el script que va en el head de la página:

Código HTML:
<head>

<script>
function validar()
{
    var error = "Por favor, antes de buscar complete:\n\n";
    var a = ""

    if (form.buscar.value == "") { a += " La categoria y\n  los Datos a   buscar";}
    
     if (a != "") { alert(error + a); return false; }

     return true;

}
</script>  
</head> 
y en el body de tu página:

Código HTML:
<form name="formulario1" action="otraPagina.html" onSubmit=" return validar()">

<table width="650" border="0" cellpadding="0" cellspacing="0" bgcolor="">
    <!--DWLayoutTable-->
    <tr> 
      <td width="143" height="23"></td>
      <td colspan="8" valign="top"><hr></td>
      <td width="164">&nbsp;</td>
    </tr>
    <tr> 
      <td height="18"></td>
      <td width="55"></td>
      <td width="1"></td>
      <td width="189"></td>
      <td width="78"></td>
      <td width="47"></td>
      <td width="2"></td>
      <td width="3"></td>
      <td width="64"></td>
      <td></td>
    </tr>
    <tr> 
      <td height="8"></td>
      <td></td>
      <td></td>
      <td></td>
      <td colspan="3" rowspan="2" valign="top"> <select name="Equipos">
          <OPTION value="Tipo">Tipo </OPTION>
          <OPTION value="Marca">Marca </OPTION>
          <OPTION value="Modelo">Modelo </OPTION>
          <OPTION value="N_Serie">Nº de Serie </OPTION>
          <OPTION value="Fecha_Compra">Fecha de Compra </OPTION>
          <OPTION value="N_Factura">Nº de Factura </OPTION>
          <OPTION value="Rut_Proveedor">Rut del Proveedor </OPTION>
          <OPTION value="Rut_Asignado">Rut Asignado </OPTION>
        </SELECT ></td>
      <td></td>
      <td></td>
      <td></td>
    </tr>
    <tr> 
      <td height="12"></td>
      <td></td>
      <td colspan="2" valign="top"><strong>Elija la Categoria a Buscar:</strong></td>
      <td></td>
      <td></td>
      <td></td>
    </tr>
    <tr> 
      <td height="56"></td>
      <td></td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
    </tr>
    <tr> 
      <td height="17"></td>
      <td></td>
      <td colspan="2" valign="top"><strong>Datos a Buscar:</strong> <br> </td>
      <td colspan="2" valign="top"><input type="text" name="buscar" size="25" ></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
    </tr>
    <tr> 
      <td height="4"></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
    </tr>
    <tr> 
      <td height="1"></td>
      <td></td>
      <td></td>
      <td rowspan="2" valign="top"><input name="Submit" type="submit" value="Imp.Todos.Reg. "></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
    </tr>
    <tr> 
      <td height="19"></td>
      <td></td>
      <td></td>
      <td></td>
      <td colspan="3" rowspan="2" valign="top"><input  type="button" name="submit" value="Buscar"></td>
      <td></td>
      <td></td>
    </tr>
    <tr> 
      <td height="1"></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
    </tr>
    <tr> 
      <td height="21"></td>
      <td colspan="8" valign="top"><hr></td>
      <td></td>
    </tr>
    <tr> 
      <td height="93"></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
    </tr>
  </table>  

</form> 

lo que hace esto e slo siguiente: cuando hagas el envío del formulario, onSubmit llama al resultado de la funcion "valida()". si hay un error en el formulario, ademas de imprimir el mensaje de error que hiciste, va a devolver el valor false, lo que hace que el formulario no se envíe. si no hay problemas, pasa de largo los if y cuando encuentre un "return true", se envia el formulario.

si te quedan dudas, pregunta, no hay problema.
salu2.-
__________________

<nick>Dorita</nick>...si lo sé, soy una ñoña ;)
  #9 (permalink)  
Antiguo 03/02/2006, 13:37
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 calavera:

La forma correcta de validar es más o menos como te puso Dorita, aunque debía estar dentro del las llaves...

Te explicaré como se hace.

La validación se hace antes del envío del formulario (en el momento de pulsar el botón submit) y la función de validación debe devolver cierto o falso (true/false) al manejador de eventos onsubmit del formulario (etiqueta form)

No es que deba ponerse return false o return true... lo más apropiado y legible es poner return campoVacio(campo)

y esa función campoVacio(x) tampoco es que tenga que tener el return true/false... vale con esa comparación cuyo resultado será el valor lógico:

function campoVacio(campo) {
return (campo.value == "");
}

Otro ejemplo sería pedir confirmación:
onsubmit="return confirm('Está seguro...')"

O sea que las funciones de validación o confirmación deben devolver cierto/false...

Para tu caso, podríamos poner:

function validar(f) {
var error = "Por favor, antes de buscar complete:\n\n";
var a = "";
if (f.buscar.value == "") {
a += " La categoria y\n los Datos a buscar";
alert(error + a);
}
return (a == "");
}

Y la validación en la etiqueta form como te puso Dorita

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #10 (permalink)  
Antiguo 03/02/2006, 13:49
Avatar de calavera  
Fecha de Ingreso: diciembre-2005
Mensajes: 113
Antigüedad: 18 años, 4 meses
Puntos: 0
E Seguido Sus Consejos Pero ???

CARICATOS,

E HECHO TODO LO KE ME HAN DICHO, PERO AUN TENGO EL PROBLEMA, CUANDO PRESIONO EL BOTON BUSCAR, ESTE NO ME REALIZA NINGUNA ACCION, Y CUANDO PONGO EL LA FLECHA EN EL CAMPO TEXTO Y PRESIONO ENTER ESTE ME IMPRIME TODOS LOS REGISTROS.
KE ESTOY REALIZANDO MAL ???????????¿¿¿¿¿¿¿¿¿¿¿¿???????????????



Cita:
Iniciado por caricatos
Hola calavera:

La forma correcta de validar es más o menos como te puso Dorita, aunque debía estar dentro del las llaves...

Te explicaré como se hace.

La validación se hace antes del envío del formulario (en el momento de pulsar el botón submit) y la función de validación debe devolver cierto o falso (true/false) al manejador de eventos onsubmit del formulario (etiqueta form)

No es que deba ponerse return false o return true... lo más apropiado y legible es poner return campoVacio(campo)

y esa función campoVacio(x) tampoco es que tenga que tener el return true/false... vale con esa comparación cuyo resultado será el valor lógico:

function campoVacio(campo) {
return (campo.value == "");
}

Otro ejemplo sería pedir confirmación:
onsubmit="return confirm('Está seguro...')"

O sea que las funciones de validación o confirmación deben devolver cierto/false...

Para tu caso, podríamos poner:

function validar(f) {
var error = "Por favor, antes de buscar complete:\n\n";
var a = "";
if (f.buscar.value == "") {
a += " La categoria y\n los Datos a buscar";
alert(error + a);
}
return (a == "");
}

Y la validación en la etiqueta form como te puso Dorita

Saludos
  #11 (permalink)  
Antiguo 03/02/2006, 13:56
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:

Bueno, al menos parece que la validación mejora, porque lo único que hace es comprobar que el campo esté vacío o no.

Pones el formulario como parámetro de la función:

<form onsubmit="return validar(this)" ... >

El this es muy importante si sigues mi ejemplo... si no pones this, dentro de la función deberías indicar que f es el formulario...

funacion validar() {
f = document.forms["formulario1"];

// el resto creo que igual

}

Pruébalo y nos cuentas.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #12 (permalink)  
Antiguo 03/02/2006, 14:18
Avatar de calavera  
Fecha de Ingreso: diciembre-2005
Mensajes: 113
Antigüedad: 18 años, 4 meses
Puntos: 0
Funciona Pero

NO FUNCIONA CORRECTAMENTE YA KE AL PESIONAR BUSCAR NO ME ENVIA EL MENSAJE, Y LO OTRO ES KE LO PRESIONO Y ME DICE KE LA PAGINA SE CARGO, PERO CON ERRORES

El mensaje es

Código HTML:
SE ESPERABA ';'
EN LA LINEA

Código PHP:
funcion validar(){ 


Código PHP:
<script>
funcion validar(){
document.forms["formulario1"];
var 
error "Por favor, antes de buscar complete:\n\n";
var 
"";
if (
f.buscar.value == "") {
+= " La categoria y\n los Datos a buscar";
alert(error a);
}
return (
== "");
}


</script> 
Cita:
Iniciado por caricatos
Hola:

Bueno, al menos parece que la validación mejora, porque lo único que hace es comprobar que el campo esté vacío o no.

Pones el formulario como parámetro de la función:

<form onsubmit="return validar(this)" ... >

El this es muy importante si sigues mi ejemplo... si no pones this, dentro de la función deberías indicar que f es el formulario...

funacion validar() {
f = document.forms["formulario1"];

// el resto creo que igual

}

Pruébalo y nos cuentas.

Saludos
  #13 (permalink)  
Antiguo 03/02/2006, 15:01
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Bueno, te pongo un código reducido que lo acabo de probar y funciona:

Código:
<html>
<head>
<title>
	prueba
</title>
<script type="text/javascript">
function validar(f) {
 var error = "Por favor, antes de buscar complete:\n\n";
 var a = "";
 if (f.buscar.value == "") {
  a += " La categoria y\n los Datos a buscar";
  alert(error + a);
 }
 return (a == "");
}
</script>
</head>
<body >

<form name="formulario1" action="otraPagina.html" method="get" onsubmit="return validar(this)">
<select name="Equipos">
          <OPTION value="Tipo">Tipo </OPTION>
          <OPTION value="Marca">Marca </OPTION>
          <OPTION value="Modelo">Modelo </OPTION>
          <OPTION value="N_Serie">Nº de Serie </OPTION>
          <OPTION value="Fecha_Compra">Fecha de Compra </OPTION>
          <OPTION value="N_Factura">Nº de Factura </OPTION>
          <OPTION value="Rut_Proveedor">Rut del Proveedor </OPTION>
          <OPTION value="Rut_Asignado">Rut Asignado </OPTION>
</SELECT >
<input type="text" name="buscar" size="25" >
<input type="submit" value="buscar">
</form>
</body>
</html>
Lo puedes probar en mi probador de script: http://www.pepemolina.com/probador/

Tienes que copiar el código tal cual y pegarlo en el textarea.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #14 (permalink)  
Antiguo 06/02/2006, 05:46
Avatar de calavera  
Fecha de Ingreso: diciembre-2005
Mensajes: 113
Antigüedad: 18 años, 4 meses
Puntos: 0
De acuerdo Gracias Caricatos

MUCHAS GRACIAS CARICATOS, EL SCRIPT ME HA FUNCIONADO A LA PERFEC,

AGRADECIDO



Cita:
Iniciado por caricatos
Bueno, te pongo un código reducido que lo acabo de probar y funciona:

Código:
<html>
<head>
<title>
	prueba
</title>
<script type="text/javascript">
function validar(f) {
 var error = "Por favor, antes de buscar complete:\n\n";
 var a = "";
 if (f.buscar.value == "") {
  a += " La categoria y\n los Datos a buscar";
  alert(error + a);
 }
 return (a == "");
}
</script>
</head>
<body >

<form name="formulario1" action="otraPagina.html" method="get" onsubmit="return validar(this)">
<select name="Equipos">
          <OPTION value="Tipo">Tipo </OPTION>
          <OPTION value="Marca">Marca </OPTION>
          <OPTION value="Modelo">Modelo </OPTION>
          <OPTION value="N_Serie">Nº de Serie </OPTION>
          <OPTION value="Fecha_Compra">Fecha de Compra </OPTION>
          <OPTION value="N_Factura">Nº de Factura </OPTION>
          <OPTION value="Rut_Proveedor">Rut del Proveedor </OPTION>
          <OPTION value="Rut_Asignado">Rut Asignado </OPTION>
</SELECT >
<input type="text" name="buscar" size="25" >
<input type="submit" value="buscar">
</form>
</body>
</html>
Lo puedes probar en mi probador de script: http://www.pepemolina.com/probador/

Tienes que copiar el código tal cual y pegarlo en el textarea.

Saludos
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 15:11.