Foros del Web » Programando para Internet » Javascript »

campo de texto con solo letras y numeros

Estas en el tema de campo de texto con solo letras y numeros en el foro de Javascript en Foros del Web. Hola foro ¿como estan? El motivo del post es pedirles ayuda con un codigo que encontre en internet Les cuento; lo que quiero es hacer ...
  #1 (permalink)  
Antiguo 25/06/2012, 15:40
Avatar de thetwister  
Fecha de Ingreso: agosto-2008
Mensajes: 30
Antigüedad: 16 años, 4 meses
Puntos: 3
Pregunta campo de texto con solo letras y numeros

Hola foro ¿como estan?

El motivo del post es pedirles ayuda con un codigo que encontre en internet
Les cuento; lo que quiero es hacer un campo de texto que solo permita letras o numeros y quizas uno que otro caracter como guion bajo y que si el usuario de alguna manera "x" logra poner otro, se borre el campo de texto para que lo vuelva a escribir correctamente

encontre un codigo en internet que hace exactamente eso aqui [URL="http://fgualambo.blogspot.mx/2011/09/validar-campo-de-texto-solo-letras.html"]http://fgualambo.blogspot.mx/2011/09/validar-campo-de-texto-solo-letras.html[/URL] (es el segundo codigo, el que tiene la funcion "limpiar")

El problema es que ese solo acepta letras y quiero que tambien acepte numeros asi que como pude lo modifique pero ahora si permite escribir numeros pero al quitar el cursor del campo lo borra

Aqui el codigo que tengo

Código Javascript:
Ver original
  1. <script>
  2. function soloLetras(e){
  3.     key = e.keyCode || e.which;
  4.     tecla = String.fromCharCode(key).toLowerCase();
  5.     letras = " 0123456789abcdefghijklmnñopqrstuvwxyz";
  6.     especiales = [8,48,49,50,51,52,53,54,55,56,57,37,39,46];
  7.  
  8.     tecla_especial = false
  9.     for(var i in especiales){
  10.  if(key == especiales[i]){
  11.      tecla_especial = true;
  12.      break;
  13.         }
  14.     }
  15.  
  16.     if(letras.indexOf(tecla)==-1 && !tecla_especial)
  17.         return false;
  18. }
  19. function limpia(){
  20.     var val = document.getElementById("miInput").value;
  21.     var tam = val.length;
  22.     for(i=0;i<tam;i++){
  23.  if(!isNaN(val[i]))
  24.  document.getElementById("miInput").value='';
  25.     }
  26. }
  27. </script>
  28.  
  29. <input type="text" onkeypress="return soloLetras(event)" onblur="limpia()" id="miInput">

Lo que agregé está en la linea 5 donde escribí los numeros y en la linea 6 donde puse los numeros 48 al 57 basados en esta [URL="http://franz.webcindario.com/utilidades/keycode.php"]Tabla[/URL] y segun entendí

¿Cómo puedo hacer que ya acepte los numeros sin borrar el campo de texto?

Por cierto, mi conocimiento en JavaScript es como de 0.1% haha, pero en este momento lo necesito y por eso la necesidad de investigar

Gracias
  #2 (permalink)  
Antiguo 25/06/2012, 19:52
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: campo de texto con solo letras y numeros

Esto ya ha sido respondido muchas veces en el foro, para la próxima te recomiendo hagas un búsqueda más refinada
Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>titulo</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6. <script type="text/javascript">
  7. function validar(idcampo, mensaje) {
  8. var cadena = document.getElementById(idcampo).value;
  9. var exp_reg  = /^[a-z\d\u00C0-\u00ff]+$/i; // expresión regular para letras(máy o minus), acentuadas o no, y números
  10. var verifica = exp_reg.test(cadena);
  11. if (verifica == true){
  12. //alert('ok');
  13. document.getElementById(mensaje).innerHTML = "Correcto";
  14. }else {
  15. //alert('error');
  16. document.getElementById(mensaje).innerHTML = "Incorrecto";
  17. return false;
  18. }
  19. }
  20. </head>
  21. <form action="#">
  22. <div>
  23. <label for="nombre">Nombre</label>
  24. <input type="text" onkeyup="validar(this.id,'mensaje_nombre');" id="nombre" />
  25. <span id="mensaje_nombre"><!-- aqui el mensaje a medida que se introducen caracteres --></span>
  26. </div>
  27. </form>
  28. </body>
  29. </html>
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Última edición por emprear; 25/06/2012 a las 20:00
  #3 (permalink)  
Antiguo 25/06/2012, 20:23
Avatar de thetwister  
Fecha de Ingreso: agosto-2008
Mensajes: 30
Antigüedad: 16 años, 4 meses
Puntos: 3
Respuesta: campo de texto con solo letras y numeros

Hola emprear, gracias por el codigo
Este no lo ví pero sirve muy bien, por otro lado veo que permite letras con acentos y mayusculas ¿ hay menera de que no permita esos caracteres? es que es lo pienso usar para un campo de texto para el login donde no quiero que se pueda poner
  #4 (permalink)  
Antiguo 25/06/2012, 21:47
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: campo de texto con solo letras y numeros

se remueve esto
\u00C0-\u00ff

SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #5 (permalink)  
Antiguo 26/06/2012, 05:34
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 6 meses
Puntos: 1012
Respuesta: campo de texto con solo letras y numeros

también el modificado de patrón (i)
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}

Etiquetas: funcion, html, input, letras, numeros, php, campos
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 10:33.