function Mail_Validate(Value) { var exclude=/[^@\-\.\w]|^[_@\.\-]|[\._\-]{2}|[@\.]{2}|(@)[^@]*\1/; var check=/@[\w\-]+\./; var checkend=/\.[^@]{2,3}$/; if (Value == "") return(""); if(((Value.search(exclude) != -1)||(Value.search(check)) == -1)|| (Value.search(checkend) == -1)){ return("La sintaxis no es correcta");} } function CharNotAllowed_Validate(objeto) { var contraBar = /\\|\"/; var Value = objeto.value; if (Value == "") return(""); if((Value.search(contraBar) != -1)) { alert("Hay carácteres no permitidos en " + Value); objeto.focus(); objeto.select(); return(""); } } function Date_Validate(Value) { //fechas, formato dd/mm/aaaa var mes31 = /^([1-3]0|[0-2][1-9]|31|[0-9])\/(1|01|3|03|5|05|7|07|8|08|10|12)\/(19[0-9][0-9]|20[0-9][0-9])$/; var mes30 = /^([1-3]0|[0-2][1-9]|[0-9])\/(4|04|6|06|9|09|11)\/(19[0-9][0-9]|20[0-9][0-9])$/; var mes28 = /^([1-2]0|[0-2][1-8]|[0-1]9|[0-9])\/(02|2)\/(19[0-9][0-9]|20[0-9][0-9])$/; var mes29 = /^([1-2]0|[0-2][1-9]|[0-9])\/(02|2)\/(1904|1908|1912|1916|1920|1924|1928|1932|1936|1940|1944|1948|1952|1956|1960|1964|1968|1972|1976|1980|1984|1988|1992|1996|2000|2004|2008|2012|2016|2020)$/; if (!(mes31.test(Value) || mes30.test(Value) || mes29.test(Value) || mes28.test(Value))) { return ("\n- Fecha: Contenido del campo fecha no es válido"); } else { return ""; } } function CP_Validate(Value) { var cp = /^([1-4][0-9]|0[1-9]|5[0-2])[0-9][0-9][0-9]$/; if (!cp.test(Value)) return ("Contenido del campo código postal no és válido"); } function Field_Validate_Ajax(Name, id, ValueType, Min, Max, Required) { var CharCnt; var ErrorHeader; var Value; var fForm; var HTMLTipo fForm = eval("document.getElementById('" + id + "').value"); ErrorHeader = "\n- " + Name + ": "; HTMLTipo = eval("document.getElementById('" + id + "').type"); if (!HTMLTipo) HTMLTipo = eval("document.getElementById('" + id + "')[0].type"); switch (HTMLTipo) { case "checkbox": return(""); /* case "radio": if (Required) { var OpCnt; var selected = false; for(OpCnt = 0; OpCnt < eval("document.getElementById('" + id + "').length"); OpCnt++) { if (eval("document.getElementById('" + id + "[" + OpCnt + "].checked")) selected = true; } if (!selected) return(ErrorHeader + "Tiene que escogerse una de las opciones."); } return(""); case "select-one": if (Required && eval("fForm." + Field + ".selectedIndex") < 1) return(ErrorHeader + "El campo ha de tener algna opción seleccionada."); return(""); */ case "textarea": Value = Value_Trim("" + eval("document.getElementById('" + id + "').value")); if (Required && Value == "") return(ErrorHeader + "El campo no puede estar vacío."); return(""); case "text": case "hidden": Value = Value_Trim("" + eval("document.getElementById('" + id + "').value")); if (Required && Value == "") return(ErrorHeader + "El campo no puede estar vacío."); case "password": Value = Value_Trim("" + eval("document.getElementById('" + id + "').value")); if (Required && Value == "") return(ErrorHeader + "El campo no puede estar vacío."); if (!Required && Value == "") return(""); switch (ValueType.toLowerCase()) { case "alphabetic": for(CharCnt = 0; CharCnt < Value.length; CharCnt++) { Char = Value.charAt(CharCnt); if ((Char < 'A' || Char > 'Z') && (Char < 'a' || Char > 'z') && (Char != 'á' && Char != 'é' && Char != 'í' && Char != 'ó' && Char != 'ú' && Char != 'Á' && Char != 'É' && Char != 'Í' && Char != 'Ó' && Char != 'Ú' && Char != 'è' && Char != 'ò' && Char != 'È' && Char != 'Ò' && Char != 'ü' && Char != 'ï' && Char != 'Ü' && Char != 'Ï' && Char != 'ñ' && Char != 'Ñ' && Char != 'à' && Char != 'À' && Char!=' ' && Char !='ç' && Char !='Ç' && Char !='-' && Char != "\'")) return(ErrorHeader + "El campo no contiene caracteres alfabéticos"); } if (Value.length > Max || Value.length < Min) { if (Min==Max) return(ErrorHeader + "El campo no tiene " + Min + " carácteres."); else return(ErrorHeader + "El campo no tiene entre " + Min + " i " + Max + " carácteres."); } break; case "cp": for(CharCnt = 0; CharCnt < Value.length; CharCnt++) { Char = Value.charAt(CharCnt); if (Char < '0' || Char > '9') return(ErrorHeader + "El campo no tiene un número válido"); } if (Value.length > Max || Value.length < Min) { if (Min==Max) return(ErrorHeader + "El campo no tiene " + Min + " dígitos."); else return(ErrorHeader + "El campo no tiene entre " + Min + " i " + Max + " dígitos."); } Error = CP_Validate(Value); if (Error) return(ErrorHeader + Error + "."); break; case "digit": for(CharCnt = 0; CharCnt < Value.length; CharCnt++) { Char = Value.charAt(CharCnt); if (Char < '0' || Char > '9') return(ErrorHeader + "El campo no tiene un número válido"); } if (Value.length > Max || Value.length < Min) { if (Min==Max) return(ErrorHeader + "El campo no tiene " + Min + " dígitos."); else return(ErrorHeader + "El campo no tiene entre " + Min + " i " + Max + " dígitos."); } break; case "e-mail": Error = Mail_Validate(Value); if (Error) return(ErrorHeader + Error + "."); if (Value.length > Max || Value.length < Min) { if (Min==Max) return(ErrorHeader + "El campo no tiene " + Min + " caracter/s."); else return(ErrorHeader + "El campo no tiene entre " + Min + " y " + Max + " carácteres."); } break; case "integer": for(CharCnt = 0; CharCnt < Value.length; CharCnt++) { Char = Value.charAt(CharCnt); if (Char < '0' || Char > '9') return(ErrorHeader + "El campo no tiene un número válido"); } if (parseFloat(Value) > Max || parseFloat(Value) < Min) return(ErrorHeader + "El campo no está entre " + Min + " y " + Max + "."); break; case "string": if (Value.length > Max || Value.length < Min) { if (Min==Max) return(ErrorHeader + "El campo no tiene " + Min + " carácter/es."); else return(ErrorHeader + "El campo no tiene entre " + Min + " i " + Max + " carácteres."); } break; case "clave": if (Value.length > Max || Value.length < Min) { return(ErrorHeader + "La contraseña no tiene entre " + Min + " i " + Max + " carácteres."); } break; case "telefono": if (Value.length > Max || Value.length < Min) { if (Min==Max) return(ErrorHeader + "El campo no tiene " + Min + " carácter/es."); else return(ErrorHeader + "El campo no tiene entre " + Min + " i " + Max + " carácter/es."); } if (Value.charAt(0)!='9') return(ErrorHeader + "El campo no tiene un número de teléfono válid"); for(CharCnt = 1; CharCnt < Value.length; CharCnt++) { Char = Value.charAt(CharCnt); if (Char < '0' || Char > '9') return(ErrorHeader + "El campo no tiene un número de teléfon válido"); } break; case "movil": if (Value.length > Max || Value.length < Min) { if (Min==Max) return(ErrorHeader + "El campo no tiene " + Min + " carácter/es."); else return(ErrorHeader + "El campo no tiene entre " + Min + " i " + Max + " carácter/es."); } if (Value.charAt(0)!='6') return(ErrorHeader + "El camp no tiene un número de teléfono válido"); for(CharCnt = 1; CharCnt < Value.length; CharCnt++) { Char = Value.charAt(CharCnt); if (Char < '0' || Char > '9') return(ErrorHeader + "El campo no tiene un número de móvil válido"); } break; case "fecha": Error=Date_Validate(Value); if (Error) return(ErrorHeader + Error + "."); if (Value.length > Max || Value.length < Min) { return(ErrorHeader + "La fecha no tiene entre " + Min + " i " + Max + " carácteres."); } break; default: return(ErrorHeader + "El tipo valor [" + ValueType + "] no está reconocido."); } return(""); } return(ErrorHeader + "El tipo de campo HTML no está reconocidot."); } function Field_Validate(Name_Form, Name, Field, ValueType, Min, Max, Required) { var CharCnt; var ErrorHeader; var Value; var fForm; var HTMLTipo fForm = eval("document." + Name_Form); ErrorHeader = "\n- " + Name + ": "; HTMLTipo = eval("fForm." + Field + ".type"); if (!HTMLTipo) HTMLTipo = eval("fForm." + Field + "[0].type"); switch (HTMLTipo) { case "checkbox": return(""); case "radio": if (Required) { var OpCnt; var selected = false; for(OpCnt = 0; OpCnt < eval("fForm." + Field + ".length"); OpCnt++) { if (eval("fForm." + Field + "[" + OpCnt + "].checked")) selected = true; } if (!selected) return(ErrorHeader + "Tiene que escogerse una de las opciones."); } return(""); case "select-one": if (Required && eval("fForm." + Field + ".selectedIndex") < 1) return(ErrorHeader + "El campo debe tener alguna opción seleccionada."); return(""); case "textarea": Value = Value_Trim("" + eval("fForm." + Field + ".value")); if (Required && Value == "") return(ErrorHeader + "El campo no puede estar vacío."); return(""); case "text": case "hidden": Value = Value_Trim("" + eval("fForm." + Field + ".value")); if (Required && Value == "") return(ErrorHeader + "El campo no puede estar vacío."); case "password": Value = Value_Trim("" + eval("fForm." + Field + ".value")); if (Required && Value == "") return(ErrorHeader + "El campo no puede estar vacío."); if (!Required && Value == "") return(""); switch (ValueType.toLowerCase()) { case "alphabetic": for(CharCnt = 0; CharCnt < Value.length; CharCnt++) { Char = Value.charAt(CharCnt); if ((Char < 'A' || Char > 'Z') && (Char < 'a' || Char > 'z') && (Char != 'á' && Char != 'é' && Char != 'í' && Char != 'ó' && Char != 'ú' && Char != 'Á' && Char != 'É' && Char != 'Í' && Char != 'Ó' && Char != 'Ú' && Char != 'è' && Char != 'ò' && Char != 'È' && Char != 'Ò' && Char != 'ü' && Char != 'ï' && Char != 'Ü' && Char != 'Ï' && Char != 'à' && Char != 'À' && Char != 'ñ' && Char != 'Ñ' && Char!=' ' && Char !='ç' && Char !='Ç' && Char !='-' && Char != "\'")) return(ErrorHeader + "El campo no contiene caracteres alfabéticos"); } if (Value.length > Max || Value.length < Min) { if (Min==Max) return(ErrorHeader + "El campo no tiene " + Min + " caracter/es."); else return(ErrorHeader + "El campo no tiene entre " + Min + " y " + Max + " caracter/es."); } break; case "digit": for(CharCnt = 0; CharCnt < Value.length; CharCnt++) { Char = Value.charAt(CharCnt); if (Char < '0' || Char > '9') return(ErrorHeader + "El campo no tiene un número válido"); } if (Value.length > Max || Value.length < Min) { if (Min==Max) return(ErrorHeader + "El campo no tiene " + Min + " dígitos."); else return(ErrorHeader + "El campo no tiene entre " + Min + " y " + Max + " dígitos."); } break; case "e-mail": Error = Mail_Validate(Value); if (Error) return(ErrorHeader + Error + "."); if (Value.length > Max || Value.length < Min) { if (Min==Max) return(ErrorHeader + "El campo no tiene " + Min + " caracter/es."); else return(ErrorHeader + "El campo no tiene entre " + Min + " y " + Max + " caracter/es."); } break; case "integer": for(CharCnt = 0; CharCnt < Value.length; CharCnt++) { Char = Value.charAt(CharCnt); if (Char < '0' || Char > '9') return(ErrorHeader + "El campo no tiene un número válido"); } if (parseFloat(Value) > Max || parseFloat(Value) < Min) return(ErrorHeader + "El campo no está entre " + Min + " y " + Max + "."); break; case "cp": for(CharCnt = 0; CharCnt < Value.length; CharCnt++) { Char = Value.charAt(CharCnt); if (Char < '0' || Char > '9') return(ErrorHeader + "El campo no tienen un código postal válido"); } if (Value.length > Max || Value.length < Min) { if (Min==Max) return(ErrorHeader + "El campo no tiene" + Min + " dígitos."); else return(ErrorHeader + "El campo no tiene entre " + Min + " y " + Max + " dígitos."); } Error = CP_Validate(Value); if (Error) return(ErrorHeader + Error + "."); break; case "string": if (Value.length > Max || Value.length < Min) { if (Min==Max) return(ErrorHeader + "El campo no tiene " + Min + " caracter/es."); else return(ErrorHeader + "El campo no tiene entre " + Min + " y " + Max + " caracter/es."); } break; case "clave": if (Value.length > Max || Value.length < Min) { return(ErrorHeader + "La contraseña no tiene entre " + Min + " y " + Max + " caracteres."); } break; case "telefono": if (Value.charAt(0)!='9') return(ErrorHeader + "El campo no tiene un número de teléfono válido"); for(CharCnt = 1; CharCnt < Value.length; CharCnt++) { Char = Value.charAt(CharCnt); if (Char < '0' || Char > '9') return(ErrorHeader + "El campo no tiene un número de teléfono válido"); } break; case "movil": if (Value.charAt(0)!='6') return(ErrorHeader + "El campo no tiene un número de móvil válido"); for(CharCnt = 1; CharCnt < Value.length; CharCnt++) { Char = Value.charAt(CharCnt); if (Char < '0' || Char > '9') return(ErrorHeader + "El campo no tiene un número de móvil válido"); } break; case "fecha": Error=Date_Validate(Value); if (Error) return(ErrorHeader + Error + "."); if (Value.length > Max || Value.length < Min) { return(ErrorHeader + "La fecha no tiene entre " + Min + " y " + Max + " caracteres."); } break; default: return(ErrorHeader + "El tipo valor [" + ValueType + "] no está reconocido."); } return(""); } return(ErrorHeader + "El tipo de campo HTML no está reconocido."); } function Value_Trim(Value) { var Length; Length = Value.length; for(Cnt = 0; Cnt < Value.length && Value.charAt(Cnt) == " "; Cnt++); Value = Value.substr(Cnt); for(Cnt = Value.length - 1; Cnt >= 0 && Value.charAt(Cnt) == " "; Cnt--); Value = Value.substring(0, Cnt + 1); return(Value); } function checks(texto,apartat,max) { var alguno = false for(i=1;i<=(max-1);i++) { if (eval("document.forms[0].elements['"+texto+"_"+i+"'].checked")==true) { alguno = true } } if (eval("document.forms[0].elements['"+texto+"_"+max+"'].value")!="") { alguno = true } if (alguno!=true) { var errores=apartat } else { errores = "" } return errores }