Foros del Web » Programando para Internet » Javascript »

Validar solo caracteres

Estas en el tema de Validar solo caracteres en el foro de Javascript en Foros del Web. Hola. Tengo otro problema. Creo sólo es de sintaxis, pero ya me cansé de estar revisando. En un formulario: Código: <form name="registro_carrera" method="post" action="save_car.php" onSubmit="return ...
  #1 (permalink)  
Antiguo 03/03/2010, 13:58
Avatar de venom_mau  
Fecha de Ingreso: julio-2009
Mensajes: 152
Antigüedad: 14 años, 9 meses
Puntos: 2
Pregunta Validar solo caracteres

Hola.

Tengo otro problema. Creo sólo es de sintaxis, pero ya me cansé de estar revisando.
En un formulario:
Código:
<form name="registro_carrera" method="post" action="save_car.php" onSubmit="return comprobar();">
tengo el campo:
Código:
<p class="style3">Nombre de la Carrera:<input id="inputs" type="text" name="nomb_carrera" size=25 maxlength=20 onKeyUp="val_nom_car();">
El cual quiero validar que sólo escriban letras, lo hago con el siguiente .js:
Código:
function val_nom_car()
{
  if(isNaN(document.registro_carrera.nomb_carrera.value)==false)
    {
      alert("El campo Nombre de la Carrera sólo admite letras");
      document.registro_carrera.nomb_carrera.value="";
      document.registro_carrera.nomb_carrera.focus();
      
    }
}
Si escribo en ése campo un primer caracter que sea número, si me manda el alert, pero si el primer caracter que escribo es letra y el segundo es un número, no manda el mensaje...

De nuevo gracias por su tiempo y comentarios.

Saludos :)
  #2 (permalink)  
Antiguo 03/03/2010, 14:13
Avatar de aguila_393  
Fecha de Ingreso: septiembre-2007
Ubicación: Argentina
Mensajes: 406
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: Validar solo caracteres

Podrias hacerlo facilmente pasando el valor a un array, y luego vas recorriendo todos los lugares del array, en caso de que alguno sea un numero muestra el mensaje. Sino me equivoco hay un metodo para convertir una cadena de texto en un array. Si no responde nadie antes de las 10 te trato de buscar bien el nombre y como hacerlo es que ahora me estoy yendo.

Creo que era algo asi:
var array = cadenaTexto.Split("");

Aunque no te lo podria asegurar.
  #3 (permalink)  
Antiguo 04/03/2010, 10:19
Avatar de venom_mau  
Fecha de Ingreso: julio-2009
Mensajes: 152
Antigüedad: 14 años, 9 meses
Puntos: 2
Respuesta: Validar solo caracteres

Pues no me salió, jeje.
Seguiré buscando
  #4 (permalink)  
Antiguo 04/03/2010, 10:41
Avatar de aguila_393  
Fecha de Ingreso: septiembre-2007
Ubicación: Argentina
Mensajes: 406
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: Validar solo caracteres

Proba con esto:
Código Javascript:
Ver original
  1. String.prototype.toArray = function() {
  2.   return this.split('');
  3. }
  4.  
  5. //Una vez que definiste el nuevo metodo de los strings pasas tu cadena de texto a array
  6.  
  7. var cadenaTexto = cadenaObtenida;
  8. var arrayTexto = cadenaTexto.toArray();
  9.  
  10. for (var i = 0; i < arrayTexto.length ; i++) {
  11.     if ( arrayTexto[i] != NaN) {
  12.     // Lo que queres que haga si es un numero
  13.     }
  14.     else {
  15.     }
  16. }

Mas o menos seria algo asi, quizas tenga algun error es que tambien soy bastante novato en esto de javascript pero se me hace que podes hacerlo asi. Lo unico que no se es si el "NaN" ira a funcionar ya que el numero va a ser una cadena de texto aunque puede que funcione. Probalo ;)
  #5 (permalink)  
Antiguo 04/03/2010, 12:24
Avatar de venom_mau  
Fecha de Ingreso: julio-2009
Mensajes: 152
Antigüedad: 14 años, 9 meses
Puntos: 2
Respuesta: Validar solo caracteres

Cita:
Iniciado por aguila_393 Ver Mensaje
Proba con esto:
Código Javascript:
Ver original
  1. String.prototype.toArray = function() {
  2.   return this.split('');
  3. }
  4.  
  5. //Una vez que definiste el nuevo metodo de los strings pasas tu cadena de texto a array
  6.  
  7. var cadenaTexto = cadenaObtenida;
  8. var arrayTexto = cadenaTexto.toArray();
  9.  
  10. for (var i = 0; i < arrayTexto.length ; i++) {
  11.     if ( arrayTexto[i] != NaN) {
  12.     // Lo que queres que haga si es un numero
  13.     }
  14.     else {
  15.     }
  16. }

Mas o menos seria algo asi, quizas tenga algun error es que tambien soy bastante novato en esto de javascript pero se me hace que podes hacerlo asi. Lo unico que no se es si el "NaN" ira a funcionar ya que el numero va a ser una cadena de texto aunque puede que funcione. Probalo ;)
Hola aguila_393.
Pues ahora esta peor, cada vez que escribo numero o letra, me lo borra y manda el alert...
Voy a revisarlo bien.
Gracias :)
  #6 (permalink)  
Antiguo 12/03/2010, 10:35
Avatar de venom_mau  
Fecha de Ingreso: julio-2009
Mensajes: 152
Antigüedad: 14 años, 9 meses
Puntos: 2
Respuesta: Validar solo caracteres

Pues encontré esta solución provisional. No lo desarrollé pero igual lo comparto para que sirva a alguien más:

Código javascript:
Código:
function val_caracteres(evt)
{

  
evt = (evt) ? evt : event;
var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode :
((evt.which) ? evt.which : 0));
if (charCode > 31 && (charCode < 64 || charCode > 90) && (charCode < 97 || charCode > 122))
{
alert("El campo sólo admite letras.");
document.formulario.campo.value=""; //vacia el campo
return false;
}
return true; 
}
Código en el html (en el input donde solo quieres caracteres):
Código:
<input  id="inputs" type="text" name="campo" size=55 maxlength=35 onKeyUp=" val_caracteres(event);">
Saludos :)
  #7 (permalink)  
Antiguo 24/03/2010, 10:51
Avatar de venom_mau  
Fecha de Ingreso: julio-2009
Mensajes: 152
Antigüedad: 14 años, 9 meses
Puntos: 2
Respuesta: Validar solo caracteres

Respecto al mensaje anterior, acabo de encontrar un error, si doy un espacio, manda el mensaje, esto es, toma a la tecla de espacio como un caracter no válido.

Comencé a investigar acerca de las expresiones regulares y traté con esto:
Código:
function val_nom_car()
{
   var charpos = document.registro.nomb.value.search("[^A-Za-z/\s/]"); 
   if(document.registro.nomb.value.length > 0 && charpos >= 0) 
    { 
     alert( "El campo Nombre sólo permite letras )"; 
     document.registro.nomb.value="";
     document.registro.nomb.focus(); 
    }
}
La expresión ("[^A-Za-z/\s/]") me valida sólo caracteres, pero también quiero que me acepte uno o dos espacios, no sé si se pueda hacer esto.

Gracias :)

Última edición por venom_mau; 24/03/2010 a las 11:56
  #8 (permalink)  
Antiguo 25/03/2010, 13:42
Avatar de venom_mau  
Fecha de Ingreso: julio-2009
Mensajes: 152
Antigüedad: 14 años, 9 meses
Puntos: 2
Respuesta: Validar solo caracteres

O algún tutorial de expresiones regulares que pueda encontrar en la red...

Etiquetas: caracteres
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 20:20.