Foros del Web » Programando para Internet » Javascript »

Restricción de inputs de texto

Estas en el tema de Restricción de inputs de texto en el foro de Javascript en Foros del Web. Estoy realizando una serie de funciones para restringir a usuarios a que solo puedan meter ciertos caracteres, tengo hasta ahora cuatro tipo de restricciones de ...
  #1 (permalink)  
Antiguo 11/01/2006, 15:00
 
Fecha de Ingreso: diciembre-2005
Ubicación: Ciudad de México
Mensajes: 45
Antigüedad: 18 años, 4 meses
Puntos: 1
Restricción de inputs de texto

Estoy realizando una serie de funciones para restringir a usuarios a que solo puedan meter ciertos caracteres, tengo hasta ahora cuatro tipo de restricciones de las cuales tres funcionan bien. La cuarta restriccioón no funciona bien pues el argumento que recibe no lo recibe como referencia sino por valor, la pregunta es si alguién me puede ayudar a que eso funcione.


Solo me falta mencionar que el código no sirve en IE, para eso también sigo trabajando.




<html>
<head>
<script>

//*********************************funciones de validación*********************************
//este método valida que solo contenga texto un campo
objVal=new Array();
function validaTexto(){
this.cadena=document.getElementById(this.campo).va lue;
respuesta=false;
expReg=new RegExp("^[a-z\ \á-\ú\ü\Ü\Á-\Ú]+$","gi");
if(expReg.test(this.cadena))
respuesta=true;
return respuesta;
}

//este método valida que un campo solo contenga texto sin espacios
function validaTextoSE(){
this.cadena=document.getElementById(this.campo).va lue;
respuesta=false;
expReg=new RegExp("^[a-z\á-\ú\ü\Ü\Á-\Ú]+$","gi");
if(expReg.test(this.cadena))
respuesta=true;
return respuesta;
}

//este método valida que sun campo solo contenga números enteros
function validaEntero(){
this.cadena=document.getElementById(this.campo).va lue;
respuesta=false;
expReg=new RegExp("^[0-9]+$","gi");
if(expReg.test(this.cadena))
respuesta=true;
return respuesta;
}

//este método verifica que un campo contenga, ya sea números enteros o de punto flotante
function validaFlotante(){
this.cadena=document.getElementById(this.campo).va lue;
respuesta=false;
expReg=new RegExp("^[0-9]+(.[0-9]+)?$","gi");
if(expReg.test(this.cadena))
respuesta=true;
expReg=new RegExp("[\ -\-]|\/|[\:-\~]","gi");
if(expReg.test(this.cadena))
return false;
return respuesta;
}

//************************************Métodos varios***************************************

function vacio(){//comprueba si el campo no esta vacío
expReg=new RegExp("[\!-\~]+","gi");
if(expReg.test(this.cadena))
return true;
else
return false;
}

function mensaje(){//genera un mensaje seguún el tipo de campo y el estado del mismo
this.cadena=document.getElementById(this.campo).va lue;
noVacio=this.vacio();
if(this.valida())
return;
else{
if((!noVacio)&&(this.requerido==1||this.tipo==0)){
cadenaMensaje="El campo "+this.texto+" es un campo requerido favor de llenarlo";
document.getElementById(this.campo).focus();
}
else{
if(noVacio){
if(this.tipo==1)
cadenaMensaje="El campo "+this.texto+" solo acepta texto";
if(this.tipo==2)
cadenaMensaje="El campo "+this.texto+" solo acepta texto sin espacios";
if(this.tipo==3)
cadenaMensaje="El campo "+this.texto+" solo acepta números enteros";
if(this.tipo==4)
cadenaMensaje="El campo "+this.texto+" solo acepta números";
}
else
return;
}
alert(cadenaMensaje);
document.getElementById(this.campo).focus();
}
}

//******************************Constructor de la clase CampoVal***************************
//esta clase conjunta los atributos y métodos necesarios para hacer validaciones
function CampoVal(campo,tipo,texto,requerido){
if(campo==1)
return;
this.cadena=document.getElementById(campo).value;
this.campo=campo;
this.tipo=tipo;
this.texto=texto;
this.requerido=requerido;
if(this.tipo==0){
this.valida=vacio;
this.bloquea=noBloquea;
}
if(this.tipo==1){
this.valida=validaTexto;
this.bloquea=soloTexto;
}
if(this.tipo==2){
this.valida=validaTextoSE;
this.bloquea=soloTextoSE;
}
if(this.tipo==3){
this.valida=validaEntero;
this.bloquea=soloEnteros;
}
if(this.tipo==4){
this.valida=validaFlotante;
this.bloquea=soloNumeros;
}
this.mensaje=mensaje;
this.vacio=vacio;
}

/*x=new CampoVal("prueba1",1,"Prueba1",0);
onkeypress=x.bloquea;*/

//********************************funciones de Bloqueo*************************************
//esta funcion solo permite que se ingrese texto en un campo
function soloTexto(e){
expReg=new RegExp("^[a-z\ \á-\ú\ü\Ü\Á-\Ú]$","gi");
var caracter=e.which;
if(caracter<=10)
return true;
if(!(expReg.test(String.fromCharCode(caracter)))){
alert("Este campo solo acepta TEXTO!");
return false;
}
}

//esta funcion solo permite que se ingrese texto sin espacios en un campo
function soloTextoSE(){
expReg=new RegExp("^[a-z\á-\ú\ü\Ü\Á-\Ú]$","gi");
var caracter=e.which;
if(caracter<=10)
return true;
if(!(expReg.test(String.fromCharCode(caracter)))){
alert("Este campo solo acepta TEXTO SIN ESPACIOS!");
return false;
}
}

//este método solo permite que se ingresen números enteros en un campo
function soloEnteros(){
expReg=new RegExp("^[0-9]$","gi");
var caracter=e.which;
if(caracter<=10)
return true;
if(!(expReg.test(String.fromCharCode(caracter)))){
alert("Este campo solo acepta NÚMEROS ENTEROS!");
return false;
}
}

//este método solo permite que se ingresen números, ya sean enteros o de punto flotante
//n un campo.
function soloNumeros(e){
this.cadena=document.getElementById(this.campo).va lue;
expReg1=new RegExp("[.]","gi");
if(expReg1.test(this.cadena))
expReg=new RegExp("^[0-9\c127]$","gi");
else
expReg=new RegExp("^[0-9.]$","gi");
var caracter=e.which;
if(caracter<=10)
return true;
if(!(expReg.test(String.fromCharCode(caracter)))){
alert("Este campo solo acepta NÚMEROS!");
return false;
}
}

//este método no hace nada
function noBloquea(){
}
</script>
</head>

<body bgcolor="Maroon">
<input type="text" id="prueba" name="prueba" onfocus="x=new CampoVal('prueba',1,'Prueba',0);" onkeypress="onkeypress=x.bloquea;" onblur="x.mensaje();">
<input type="text" id="prueba1" name="prueba1" onfocus="x=new CampoVal('prueba1',4,'Prueba1',0);" onkeypress="x.bloquea(event);" onblur="x.mensaje();">
<input type="button" name="Valida" value="Valida">
</body>

</html>
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 18:42.