15/02/2007, 16:52
|
| | | Fecha de Ingreso: julio-2005
Mensajes: 14
Antigüedad: 19 años, 5 meses Puntos: 0 | |
Re: Validar campos utilizando varias funciones Hola:
Esto es lo que pude lograr a partir de la ayuda de wigglyUtrera y JavierB, gracias a ambos!!!
Código:
<html>
<head>
<title>Solicitar Documento</title>
<!--**************** Estilo para elementos del formulario ****************-->
<style>
fieldset {clear: both; width: auto; margin: 5% 20%; padding: 3px;
border: thick 1px #def;}
label {display: block; width: 150px;
font: 80% Arial, Helvetica, sans-serif; margin-left: 7px ;}
.botones {text-align: center;}
#control {display: inline; margin: 0px 25px;}
.campo {display: inline; width: 200px; margin: 5px 6px 5px 6px;
padding: 2px; border: inset 1px #abc;}
</style>
<script>
/******************************************************************************/
/******************************** VALIDACION ********************************/
/******************************************************************************/
// Campo Usuario
function vUser(){
var c_nu = /^[a-z\.]([a-z0-9\._]){4,27}$/ //campo usuario
if(!c_nu.test(solicitar.usuario.value)){
alert('Nombre de usuario inválido. Debe contener entre 5 y 28 caracteres.\nNo se permiten: campos o cadenas vacías, espacios ni mayúsculas.\nPuede utilizar guiones bajos, puntos y números pero NO como primer caracter.');
solicitar.usuario.focus();
solicitar.usuario.select();
return false;
}
return true;
}
// Campo Nombre
function vNom(e,solicitar){
// Admitir solo letras
tecla = (document.all) ? e.keyCode : e.which;
if (tecla==8) return true;
patron =/[\D\s]/;
te = String.fromCharCode(tecla);
if (!patron.test(te)) return false;
// No admitir espacios iniciales
txt = solicitar.value;
if(txt.length==0 && te==' '){
alert('No se permiten espacios iniciales.');
return false;
}
// Convertir 1° letra a mayuscula
if (txt.length==0 || txt.substr(txt.length-1,1)==' ') {
solicitar.value = txt+te.toUpperCase();
return false;
}
return true;
}
// No admitir campo vacio
function vacio(){
var c_na = /^([a-z]|[A-Z]|á|é|Ã*|ó|ú|ñ|ü|\s)+$/
if(!c_na.test(solicitar.nombre.value)){
alert('Escriba su nombre y apellido respetando mayúsculas, minúsculas y acentos.');
solicitar.nombre.focus();
return false;
}
return true;
}
// Campo EMAIL
//Script tomado de:
//w ww.forosdelweb.com/showpost.php?p=283672&postcount=86
//Cómo validar una dirección de email utilizando expresiones regulares
//por SpiceMan
function emailCheck (emailStr) {
var emailPat=/^(.+)@(.+)$/;
var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
var validChars="\[^\\s" + specialChars + "\]";
var quotedUser="(\"[^\"]*\")";
var ipDomainPat=/^[(d{1,3}).(d{1,3}).(d{1,3}).(d{1,3})]$/;
var atom=validChars + '+';
var word="(" + atom + "|" + quotedUser + ")";
var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
var matchArray=emailStr.match(emailPat);
if (matchArray==null) {
alert('La dirección de correo parece ser inválida (verifique las @ y .)')
solicitar.email.select();
return false
}
var user=matchArray[1]
var domain=matchArray[2]
if (user.match(userPat)==null) {
alert('El nombre de usuario parece ser inválido.')
solicitar.email.select();
return false
}
var IPArray=domain.match(ipDomainPat)
if (IPArray!=null) {
for (var i=1;i<=4;i++) {
if (IPArray[i]>255) {
alert('La direccion IP de destino es invalida!')
solicitar.email.select();
return false
}
}
return true
}
var domainArray=domain.match(domainPat)
if (domainArray==null) {
alert('El dominio no parece ser válido.')
solicitar.email.select();
return false
}
var atomPat=new RegExp(atom,"g")
var domArr=domain.match(atomPat)
var len=domArr.length
if (domArr[domArr.length-1].length<2 ||
domArr[domArr.length-1].length>3) {
alert('Las direcciones deben terminar con dominios de tres letras, o el código de país de dos letras.')
solicitar.email.select();
return false
}
if (len<2) {
var errStr="Dominio Invalido!";
alert(errStr)
solicitar.email.select();
return false
}
return true;
}
//-->
</script>
</head>
<body onLoad="this.document.solicitar.usuario.focus()">
<form action="mailto: [email protected]" method="post" name="solicitar" id="solicitar" onSubmit="return (vUser(this) && vacio(this) && emailCheck(this.email.value))">
<!--Datos Personales-->
<fieldset>
<legend>Identificación</legend>
<table>
<tr>
<td>
<label>Usuario:</label>
<input type="text" name="usuario" id="usuario" maxlength="30" value="" class="campo">
</td>
<td>
<label>Nombre y Apellido:</label>
<input type="text" name="nombre" id="nombre" maxlength="30" value="" onkeypress="return vNom(event,this)" class="campo">
</td>
<td>
<label>Correo electrónico:</label>
<input type="text" name="email" id="email" maxlength="30" value="" class="campo" >
</td>
</tr>
</table>
</fieldset>
<!--Boton de Envio-->
<div class="botones">
<div id="control">
<input type="submit" value="Enviar Solicitud" name="enviar">
</div>
</div>
</form>
Estuve mirando la FAQ # 28 Confirmación de datos: w ww.forosdelweb.com/showpost.php?p=260723&postcount=29
y ahora estoy trabajando en eso...
Alegna |