Foros del Web » Programando para Internet » Javascript »

ayuda con form???

Estas en el tema de ayuda con form??? en el foro de Javascript en Foros del Web. hola de los faq de aca saque lo de validar formularios iluminando los errores pero ahora ilumina los errores pero no me manda el form ...
  #1 (permalink)  
Antiguo 07/04/2005, 06:32
Avatar de alexjnm  
Fecha de Ingreso: octubre-2004
Ubicación: cuba
Mensajes: 218
Antigüedad: 19 años, 6 meses
Puntos: 1
ayuda con form???

hola de los faq de aca saque lo de validar formularios iluminando los errores pero ahora ilumina los errores pero no me manda el form por que es eso
saludos alex
__________________
__________________________________________________ _________
A beses el camino mas largo es la solución mas eficaz :)
  #2 (permalink)  
Antiguo 07/04/2005, 07:15
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 3 meses
Puntos: 90
Coloca el código, sino es casi imposible encontrar el error...

Saludos
__________________
Esteban Quintana
  #3 (permalink)  
Antiguo 07/04/2005, 07:26
Avatar de alexjnm  
Fecha de Ingreso: octubre-2004
Ubicación: cuba
Mensajes: 218
Antigüedad: 19 años, 6 meses
Puntos: 1
ok

este es es script
Código HTML:
<script> 
//Script original de KarlanKas para forosdelweb.com 

    colorMal="#BCCFA9"; 
    colorBien="white"; 
     
    regla=new Array() 

    regla[0]="valor.length<3"; 
    regla[1]="valor.length<3";
	regla[2]="valor.length<3";
	regla[3]="valor.length<4";
	regla[4]="valor.length<6";
	regla[5]="isNaN(valor) || valor<600000000";
	regla[6]="isNaN(valor) || valor<300"; 
    regla[7]="valor.lastIndexOf('@')!=valor.indexOf('@') || valor.indexOf('@')<2 || valor.lastIndexOf('.')<valor.length-4 || valor.lastIndexOf('.')>valor.length-3"; 
	regla[8]="valor.length<5";
	regla[9]="valor.length<5"; 

    mensaje=new Array() 


    mensaje[0]="Por favor, introduzca el nombre"; 
    mensaje[1]="El número de teléfono introducido no es válido"; 
    mensaje[2]="correo inválido";
	mensaje[3]="Por favor, introduzca el Apellidos"; 
    function comprobar(){ 
    errores=""; 


    for(a=0;a<regla.length;a++){ 
    valor=document.forms[0].elements[a].value; 
    if(eval(regla[a])){ 
    errores+=mensaje[a]+"<br>"; 
    document.forms[0].elements[a].style.background=colorMal;} 
    else{document.forms[0].elements[a].style.background=colorBien;} 
    } 
    herror.style.background=(errores!="")?colorMal:colorBien; 
    herror.style.border=(errores!="")?"solid 1px black":"none"; 
    herror.innerHTML=errores; 
    } 
     
</script> 
esta es la parte de html
Código HTML:
<form name="form1" method="post" action="lolo.php">
                          
      <input name="nombre" type="text" class="formurigistro" id="nombre">
        <br>
        <input name="apellidos" type="text" class="formurigistro" id="apellidos">
        <br>
        <select name="pais" class="formurigistro" id="pais">
          <option value="cuba">Cuba</option>
        </select>
        <br>
        <input name="ciudad" type="text" class="formurigistro" id="ciudad">
        <br>
        <input name="direccion" type="text" class="formurigistro" id="direccion">
        <br>
        <input name="telefono" type="text" class="formurigistro" id="telefono">
        <br>
        <input name="zip" type="text" class="formurigistro" id="zip">
        <br>
        <input name="email" type="text" class="formurigistro" id="email">
        <br>
        <input name="password" type="password" class="formurigistro" id="password">
        <br>
        <input name="password1" type="password" class="formurigistro" id="password1"> 
        <input name="Submit" type="button" class="formurigistro" value="Enviar" onclick=comprobar()>
        <input name="Submit" type="reset" class="formurigistro" value="Restablecer">
        <br>
        <input name="uso" type="checkbox" id="uso" value="checkbox"> 
        Estoy de Acuerdo con las Condiciones de uso<br>
              </form> 
espero que me puedan ayudar
saludos alex
__________________
__________________________________________________ _________
A beses el camino mas largo es la solución mas eficaz :)
  #4 (permalink)  
Antiguo 07/04/2005, 08:25
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 3 meses
Puntos: 90
<input name="Submit" type="button" class="formurigistro" value="Enviar" onclick=comprobar()>

Ese bonon es del typo button, lo cual no enviea el formulario, entonces lo debes mandar desde javascript si y solo si está todo validado bien...agregando

document.form1.submit();

Esa sentencia te envia el form, colocalo a tu función de js para que lo envie si está todo ok.

Saludos
__________________
Esteban Quintana
  #5 (permalink)  
Antiguo 07/04/2005, 09:02
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
He cambiado ese viejo script en un par de cosas:

- Ahora se manda con un onsubmit,
- si no se establece un mensaje de error para una comprobación concreta crea un mensaje de error tipo y
- si está bien efectivamente se manda.

Entiendo que no has puesto todo tu script porque faltan mensajes de error. No sé si puse en el script que se debe crear una capa con id herror para que muestre los errores que se tienen.

El resultado es este:

Código PHP:
<html>
<
head>
    <
title>Untitled</title>
    <
script
//Script original de KarlanKas para forosdelweb.com 

    
colorMal="#BCCFA9"
    
colorBien="white"
     
    
regla=new Array() 

    
regla[0]="valor.length<3"
    
regla[1]="valor.length<3";
    
regla[2]="valor.length<3";
    
regla[3]="valor.length<4";
    
regla[4]="valor.length<6";
    
regla[5]="isNaN(valor) || valor<600000000";
    
regla[6]="isNaN(valor) || valor<300"
    
regla[7]="valor.lastIndexOf('@')!=valor.indexOf('@') || valor.indexOf('@')<2 || valor.lastIndexOf('.')<valor.length-4 || valor.lastIndexOf('.')>valor.length-3"
    
regla[8]="valor.length<5";
    
regla[9]="valor.length<5"

    
mensaje=new Array() 

    
//Quitar si no se quiere cartel de errores. Para tener cartel de errores crea un div con id="herrores"
    
mensaje[0]="Por favor, introduzca el nombre"
    
mensaje[1]="El número de teléfono introducido no es válido"
    
mensaje[2]="correo inválido";
    
mensaje[3]="Por favor, introduzca el Apellidos"
    
    
//-----------------------------------------
    
    
    
function comprobar(){ 
    
errores=""
    
mensaje2="";
    for(
a=0;a<regla.length;a++){ 
    
valor=document.forms[0].elements[a].value
    
//Quitar si no se quiere cartel de errores
    
mensaje2=(mensaje[a])?mensaje[a]:"Por favor, rellene el campo "+document.forms[0].elements[a].name;
    
errores+=mensaje2+"<br>"
    
document.forms[0].elements[a].style.background=colorMal;} 
    else{
document.forms[0].elements[a].style.background=colorBien;} 
    } 
    
//Quitar si no se quiere cartel de errores
    
herror.style.background=(errores!="")?colorMal:colorBien
    
herror.style.border=(errores!="")?"solid 1px black":"none"
    
herror.innerHTML=errores
    
//----------------------------------------
    
return (errores=="")
    } 
     
</script> 
</head>

<body>

<form name="form1" method="post" action="lolo.php" onsubmit="return comprobar()">  
    <input name="nombre" type="text" class="formurigistro" id="nombre">  <br>  
    <input name="apellidos" type="text" class="formurigistro" id="apellidos">  <br>  
    <select name="pais" class="formurigistro" id="pais">  <option value="cuba">Cuba</option>  </select>  <br>
      <input name="ciudad" type="text" class="formurigistro" id="ciudad">  <br>  
      <input name="direccion" type="text" class="formurigistro" id="direccion">  <br>  
      <input name="telefono" type="text" class="formurigistro" id="telefono">  <br>  
      <input name="zip" type="text" class="formurigistro" id="zip">  <br>  
      <input name="email" type="text" class="formurigistro" id="email">  <br>  
      <input name="password" type="password" class="formurigistro" id="password">  <br>  
      <input name="password1" type="password" class="formurigistro" id="password1"> 
      <input name="Submit" type="submit" class="formurigistro" value="Enviar" >  
      <input name="Submit" type="reset" class="formurigistro" value="Restablecer">  <br>  
      <input name="uso" type="checkbox" id="uso" value="checkbox"> Estoy de Acuerdo con las Condiciones de uso<br>  
</form>
<div id="herror"></div>
</body>
</html> 
Un saludo!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #6 (permalink)  
Antiguo 07/04/2005, 09:25
Avatar de alexjnm  
Fecha de Ingreso: octubre-2004
Ubicación: cuba
Mensajes: 218
Antigüedad: 19 años, 6 meses
Puntos: 1
ok

ya entendi pero tengo una duda donde pongo eso que me diste porque el problema es que soy novato al javascript

disculpa las molestias
saludo alex
__________________
__________________________________________________ _________
A beses el camino mas largo es la solución mas eficaz :)
  #7 (permalink)  
Antiguo 07/04/2005, 09:36
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Cambia la etiqueta form que tienes por esta:

<form name="form1" method="post" action="lolo.php" onsubmit="return comprobar()">

el botón para enviar:
<input name="Submit" type="button" class="formurigistro" value="Enviar" onclick=comprobar()>

cambialo por:
<input name="Submit" type="submit" class="formurigistro" value="Enviar" >

Y antes de la llave que hay antes de la etiqueta </script> pon:

return (errores=="");

de forma que quede así:

return (errores=="");
}
</script>

Un saludo!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #8 (permalink)  
Antiguo 07/04/2005, 10:03
Avatar de alexjnm  
Fecha de Ingreso: octubre-2004
Ubicación: cuba
Mensajes: 218
Antigüedad: 19 años, 6 meses
Puntos: 1
ya lo puse asi pero no funciona no hace nada
en la paguina me da error en la parte de abajo de el IE
ahora ni marca los colores de que esta mal

donde esta el error
saludos alex y disculpa la molestia
__________________
__________________________________________________ _________
A beses el camino mas largo es la solución mas eficaz :)
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 16:24.