problema con el buffer de teclado con un input en un form.

0 views
Skip to first unread message

Almudena Soblechero Garcia

unread,
Nov 16, 2016, 7:44:57 AM11/16/16
to JavaScript Venezuela
Buenos días  a todos, 

Este es mi primera mensaje, pido perdón, si no es el lugar.


Bien, les expongo mi duda.

Quiero realizar lo siguiente: 

En un formulario, tengo una serie de input, cada uno debe admitir ciertos caracteres, antes de que el formulario sea enviado. Realizando para ello, unas validaciones.

Para ello hago lo siguiente:
  • en el formulario, dentro de cada input tengo una etiqueta con un evento, para poder hacer la validación.
    • <input type="text" class="form-control" name="login" id="login" maxlength="32" required="required" onchange="caracterUsuario(event)">
  • Dentro de la función javascript tengo lo siguiente:
    • function caracterUsuario(e)
    • {
    • $(div_usuario).removeClass('has-success');
    • $(div_usuario).removeClass('has-error');

    • var tecla = e.charCode; 
    • console.log(tecla);
    • var salir=false;
    • //Solo permitimos:
    • // -- letras sin ñ --> (97-122) minúsculas, (65-90) mayusculas
    • // -- números --> (0-9)
    • // -- tabulador y enter
    • // -- retroceso (0)

    • //-- letras
    • if(tecla>=65 && tecla<=90)
    • {
    • salir=true;
    • }
    • else if(tecla>=97 && tecla<=122)
    • {
    • salir=true;
    • }
    • else if(tecla>=48 && tecla<=57)
    • {
    • salir=true;
    • }
    • else if(tecla==0) 
    • {
    • salir=true;
    • }

    • if(!salir)
    • {
    • alert("Caracter no permitido");
    • $(div_usuario).addClass('has-error');
    • var login_text=document.getElementById('login').value;
    • var nueva=quitaUltimoCar(login_text);
    • document.getElementById('login').value="";
    • document.getElementById('login').value=nueva;
    • document.getElementById('login').focus();
    • }

    • if(salir)
    • {
    • $(div_usuario).addClass('has-success');
    • }

    • }

    • function quitaUltimoCar(cadena)
    • {
    • var car="";
    • var aux="";
    • for(var i=0;i<(cadena.length);i++)
    • {
    • car=cadena.charAt(i);
    • aux+=car;
    • car="";
    • }
    • return aux;
    • }
 Pues bien, no consigo hacer para que quite el caracter introducido, si éste es erróneo, ¿alguna idea de cómo se podría hacer?¿Estoy haciendo algo mal? 

Muchas gracias de antemano.
Reply all
Reply to author
Forward
0 new messages