Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/06/2012, 15:40
Avatar de thetwister
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