Validar función

Hola experto no he podido hacer que esta función me funcione te agradezco cualquier ayuda. Gracias por tu colaboración
Aquí esta el código y siempre me genera que lc_Permitidos no es una propiedad
La idea es crear una única función para todos los campos de texto que me permite identificar pulsando solo las teclas si es carácter o numérico
Código:
function ValidarNumerico(lo_CampoTexto,lc_Evento,lc_Permitidos){
lc_Permitidos=lc_Permitidos.replace("a-z","abcdefghijklmnñopqrstuvwxyz");
lc_Permitidos=lc_Permitidos.replace("0-9","01234567890");
var lc_Texto=lo_CampoTexto.value;
var lb_EsTexto=true;
for(var li_Contador=0;li_Contador<lc_Texto.length;li_Contador++){
if(lc_Permitidos.indexOf(lc_Texto.toLowerCase().charAt(li_Contador))==-1){
lb_EsTexto=false;
}
}
if(lc_Evento=="down"){
if(lb_EsTexto==true){
lc_TextoValido=lo_CampoTexto.value;
}
}
if(lc_Evento=="up"){
if(lb_EsTexto==false){
lo_CampoTexto.value=lc_TextoValido;
}
}
}
la invoco asi en el campo de texto
onkeydown="ValidarNumerico(this,'down')" onkeyup="ValidarNumerico(this,'up')"
Gracias por la ayuda

2 Respuestas

Respuesta
1
Según veo, al hacer las llamadas te dejas el parámetro "lc_Permitidos" sin poner... al método le entran tres parámetros y tu solo pones 2, de modo que al intentar el:
lc_Permitidos=lc_Permitidos.replace("a-z","abcdefghijklmnñopqrstuvwxyz");
Te da un error, porque esa variable lc_Permitidos no esta definida...
No comprendo cual es la necesidad de esa variable, lo normal es definir una donde estén todos los caracteres válidos y usarla como variable global:
lc_Permitidos="abcdefghijklmnñopqrstuvwxyz01234567890";
y el metodo recibe solo dos parametros:
function ValidarNumerico(lo_CampoTexto,lc_Evento){
var lc_Texto=lo_CampoTexto.value;
var lb_EsTexto=true;
for(var li_Contador=0;li_Contador<lc_Texto.length;li_Contador++){
if(lc_Permitidos.indexOf(lc_Texto.toLowerCase().charAt(li_Contador))==-1){
lb_EsTexto=false;
}
}
if(lc_Evento=="down"){
if(lb_EsTexto==true){
lc_TextoValido=lo_CampoTexto.value;
}
}
if(lc_Evento=="up"){
if(lb_EsTexto==false){
lo_CampoTexto.value=lc_TextoValido;
}
}
}
Respuesta
1
Perdón por el retraso, las vacaciones de Navidad...
He visto un poco por encima tu función, lc_Permitidos no lo envías al hacer la llamada a la función, tal vez debería ser una variable en vez de un parámetro de entrada, ¿no?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas