Ver Mensaje Individual
  #6 (permalink)  
Antiguo 26/10/2005, 12:22
Avatar de KarlanKas
KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Depende de dónde lo pongas en el código.

los números son en función del orden en que están puestos dentro del formulario.

Tal vez lo más sencillo es un pequeño cambio en el checkeo. Cada campo del formulario tiene un name, verdad? (<input type="text" name="pepe"...). Pues vamos a jugar con eso para que te sea más sencillo añadir nuevas reglas. El código quedaría así:

Código PHP:
<!--
//Script original de KarlanKas para forosdelweb.com 

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

    
regla[0]="valor.length<0"
    
regla[1]="valor.length<5";
    
regla[2]="valor.length<5";
    
regla[3]="valor.length<0";
    
regla[4]="valor.length<5";
    
regla[5]="valor.length<3";
    
regla[6]="valor.length<3";
    
regla[7]="valor.length<4"
    
regla[8]="valor.lastIndexOf('@')!=valor.indexOf('@') || valor.indexOf('@')<2 || valor.lastIndexOf('.')<valor.length-4 || valor.lastIndexOf('.')>valor.length-3"
    
regla[9]="valor.length<0";
    
regla[10]="valor.length<6";
    
regla[11]="valor.length<0";
    
regla[12]="valor.length<0";
    
regla[13]="valor.length<0";
    
regla[14]="valor.length<4";
    
regla[15]="valor.length<4";
    
regla[16]="valor.length<4";
    
    
mensaje=new Array()

    
mensaje[0]=""
    
mensaje[1]="Falta tu nombre"
    
mensaje[2]="Falta tu DNI o CE";
    
mensaje[3]="";
    
mensaje[4]="Falta tu domicilio";
    
mensaje[5]="Falta Estado/Provincia";
    
mensaje[6]="Falta Pais";
    
mensaje[7]="Falta tu telefono";
    
mensaje[8]="Correo inválido";
    
mensaje[9]="";
    
mensaje[10]="Falta el dominio";
    
mensaje[11]="";
    
mensaje[12]="";
    
mensaje[13]="";
    
mensaje[14]="falta usuario";
    
mensaje[15]="falta contraseña";
    
mensaje[16]="repita la contraseña";
     
    function 
comprobar(){ 
    
errores=""
    
mensaje2=""
    for(
a=0;a<regla.length;a++){ 
campo=document.forms[0].elements[a];
    
valor=document.forms[0].elements[a].value;
    
b=(regla[campo.name])?campo.name:a;
    if(eval(
regla[b])){ 
    
mensaje2=(mensaje[b])?mensaje[b]:"Por favor, rellene el campo "+document.forms[0].elements[a].name
    
errores+=mensaje2+"<br>"
    
document.forms[0].elements[b].style.background=colorMal;} 
    else{
document.forms[0].elements[b].style.background=colorBien;} 
    } 

    
herror.style.background=(errores!="")?colorMal:colorBien
    
herror.style.border=(errores!="")?"solid 1px black":"none"
    
herror.innerHTML=errores

    return (
errores==""
    } 
Ahora si quieres añadir una regla pones:

regla['name_del_checkbox']=campo.checked;
mensaje['name_del_checkbox']="Tiene que marcar el checkbox de arriba";

Así, por ejemplo, si añades este campo al formulario:

<input type="checkbox" name="pepe" value="1" />Estoy de acuerdo con que me arranquen el corazón.

La regla debe ser:
regla['pepe']=campo.checked;
mensaje['pepe']="Tiene que querer que le arranquemos el corazón para ganar la bicicleta de montaña.";


Dime si me he explicado bien y te funciona.
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.