Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] solo poder introducir algunos caracteres en un input con javascript

Estas en el tema de solo poder introducir algunos caracteres en un input con javascript en el foro de Javascript en Foros del Web. buenas tardes estoy teniendo un problemita, q para algunos quizás sea sencillo pero en este momento no estoy pudiendo resolver. Resulta que tengo un input ...
  #1 (permalink)  
Antiguo 17/03/2015, 13:47
Avatar de maximendez88  
Fecha de Ingreso: septiembre-2012
Ubicación: Montevideo
Mensajes: 131
Antigüedad: 11 años, 7 meses
Puntos: 3
Pregunta solo poder introducir algunos caracteres en un input con javascript

buenas tardes estoy teniendo un problemita, q para algunos quizás sea sencillo pero en este momento no estoy pudiendo resolver. Resulta que tengo un input el cual solo quiero poder introducir un solo caracter y que esos caracteres solo sean : "a","c","p" o "x"... estaba intentando con un código que tengo que solo me permitía escribir números, pero no me esta funcionando, espero que alguien me ayude.... a la brevedad.... dejo el código de la función que estoy intentando sin éxito mas abajo...


Código Javascript:
Ver original
  1. function algunasletras(e)
  2.     {
  3.    
  4.     var keynum = window.event ? window.event.keyCode : e.which;
  5.    
  6.     if ((keynum == 8) || (keynum == 46)  || (keynum == 65) || (keynum == 67) || (keynum == 80) || (keynum == 88))      
  7.     return true;
  8.    
  9.     //keycode  a=65  c=67 p=80 x=88
  10.    
  11.       return /\d/.test(String.fromCharCode(keynum));
  12.    
  13.     }



Código HTML:
Ver original
  1. <input type="text" maxlength="1" onkeypress="return algunasletras(event);" style="height:15px; width:15px;" />


espero una ayudita a la brevedad saludos

Última edición por maximendez88; 17/03/2015 a las 14:10
  #2 (permalink)  
Antiguo 17/03/2015, 14:37
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: solo poder introducir algunos caracteres en un input con javascript

Si ya estás haciendo una comprobación con las condiciones, ¿por qué evalúas el dato ingresado con una expresión regular? Además, si e es la variable que representa al objeto del evento, trabaja con ella directamente:

Código Javascript:
Ver original
  1. var keynum = window.event ? e.keyCode : e.which;

Por cierto, debería de haber un caso 'si no' para cuando no se cumpla la condición. Un else return false; sería suficiente.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 17/03/2015, 14:43
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: solo poder introducir algunos caracteres en un input con javascript

Eso, y si es por cuestión de compatibilidad deberías hacer primero:

Código Javascript:
Ver original
  1. var event = e || window.event;

Y luego:

Código Javascript:
Ver original
  1. var keynum = event.keyCode || event.which;
  #4 (permalink)  
Antiguo 18/03/2015, 10:14
Avatar de maximendez88  
Fecha de Ingreso: septiembre-2012
Ubicación: Montevideo
Mensajes: 131
Antigüedad: 11 años, 7 meses
Puntos: 3
Respuesta: solo poder introducir algunos caracteres en un input con javascript

buenas, muchas gracias por la respuesta
he estado investigando y probando con las respuestas q me dieron y el codigo me quedo algo así

Código Javascript:
Ver original
  1. function algunasletras(e)
  2.     {
  3.        
  4.     var event = e || window.event; 
  5.    
  6.     var keynum = event.keyCode || event.which;
  7.    
  8.     if ((keynum == 8) || (keynum == 46)  || (keynum == 65) || (keynum == 67) || (keynum == 80) || (keynum == 88))      
  9.     return true;
  10.    
  11.    
  12.     else return false;
  13.  
  14.    
  15.     }


ahora me funcionan las letras, pero solo si las mayúsculas están activadas.... hay un keycode para minúsculas en especial??

Última edición por maximendez88; 18/03/2015 a las 10:29
  #5 (permalink)  
Antiguo 18/03/2015, 13:35
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: solo poder introducir algunos caracteres en un input con javascript

Échale un vistazo a esto. Buscar en Google de vez en cuando, no te hará daño.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #6 (permalink)  
Antiguo 18/03/2015, 14:22
Avatar de maximendez88  
Fecha de Ingreso: septiembre-2012
Ubicación: Montevideo
Mensajes: 131
Antigüedad: 11 años, 7 meses
Puntos: 3
De acuerdo Respuesta: solo poder introducir algunos caracteres en un input con javascript

MUCHAS GRACIAS!!! al final lo he logrado.... estuve buscando en google si... pero tenia los codigos mal.... al final este fue mi solución... espero q le sirva a alguien en un futuro... muchas gracias de nuevo... saludos


Código Javascript:
Ver original
  1. function algunasletras(e)
  2.     {
  3.        
  4.     var event = e || window.event; 
  5.    
  6.     var keynum = event.keyCode || event.which;
  7.    
  8.     if ((keynum == 8) || (keynum == 46) || (keynum==9) || (keynum == 65) || (keynum == 67) || (keynum == 80) || (keynum == 88) ||(keynum==97)||(keynum==112)|| (keynum==99)||(keynum==120))      
  9.     return true;
  10.    
  11.     else return false;
  12.    
  13.    
  14.     }




  #7 (permalink)  
Antiguo 18/03/2015, 14:39
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: solo poder introducir algunos caracteres en un input con javascript

Se puede abreviar un poco metiendo todos los números en un array y comprobando con indexOf
  #8 (permalink)  
Antiguo 18/03/2015, 16:30
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: solo poder introducir algunos caracteres en un input con javascript

También podrías hacerlo con una expresión regular y el modificador i:

Código Javascript:
Ver original
  1. if (!/^[acpx]$/gi.test(String.fromCharCode(keyNum))) event.preventDefault();

Si el valor transformado a caracter de la tecla pulsada no se encuentra en el grupo delimitado por los corchetes ni en mayúscula ni en minúscula, evitas el comportamiento natural del evento, que sería el de imprimir el caracter en el campo de texto.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: caracteres, funcion, input, introducir, poder
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 02:25.