Foros del Web » Programando para Internet » Javascript »

Como pedir ingresar solo palabras!!!

Estas en el tema de Como pedir ingresar solo palabras!!! en el foro de Javascript en Foros del Web. Wenas . Necesito una manito . Como he pedido ingresar un numero con parseInt y el isNaN, para que solo ingrese un numero y si ...
  #1 (permalink)  
Antiguo 14/04/2012, 19:43
 
Fecha de Ingreso: abril-2012
Mensajes: 47
Antigüedad: 12 años, 8 meses
Puntos: 1
Como pedir ingresar solo palabras!!!

Wenas .

Necesito una manito .

Como he pedido ingresar un numero con parseInt y el isNaN, para que solo ingrese un numero y si ingreso otra cosa como letras o caracteres me tire un alert que diga que debo ingresar solo numeros.

Necesito tambien la forma de que solo me pida ingresar letras, como ejemplo nombre y apellido , y si ingreso numero u otras cosas me tire una alerta que , claro la hago yo que diga lo q debo ingresar.

Si alguien sabe le agradeceria se me diria la forma.

Muchas Gracias!!!
  #2 (permalink)  
Antiguo 14/04/2012, 21:09
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: Como pedir ingresar solo palabras!!!

Ejemplo:
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\u00C0-\u00ff]+$/i; // expresión regular para letras(máy o minus), acentuadas o no,
  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.  
  21. </head>
  22. <form action="#">
  23. <div>
  24. <label for="nombre">Nombre</label>
  25. <input type="text" onkeyup="validar(this.id,'mensaje_nombre');" id="nombre" />
  26. <span id="mensaje_nombre"><!-- aqui el mensaje a medida que se introducen caracteres --></span>
  27. <br />
  28. <label  for="apellido">Apellido</label>
  29. <input type="text" onkeyup="validar(this.id,'mensaje_apellido');" id="apellido" />
  30. <span id="mensaje_apellido"><!-- aqui el mensaje a medida que se introducen caracteres --></span>
  31. </div>
  32. </form>
  33. </body>
  34. </html>

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 15/04/2012, 13:32
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años, 7 meses
Puntos: 27
Respuesta: Como pedir ingresar solo palabras!!!

Y que tal algo asi:

Código Javascript:
Ver original
  1. function Sololetras(tfield) {
  2.    var valid = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
  3.    var ok = "yes";
  4.    var temp;
  5.    var x =0;
  6.    for (var i=0; i<tfield.value.length; i++) {
  7.     temp = "" + tfield.value.substring(i, i+1);
  8.     if (valid.indexOf(temp) == "-1") ok = "no";
  9.    }
  10.  
  11.    if (ok == "no") {
  12.     alert("Solo letras");
  13.     x=1;
  14.     tfield.focus();
  15.      document.getElementById("idcampo").value="";
  16.    }
  17.  
  18.    return x;
  19. }

Retorna un 1, si lo que ingresan no son letras...
  #4 (permalink)  
Antiguo 15/04/2012, 13:46
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: Como pedir ingresar solo palabras!!!

Te faltan la á, Á, é, è, ñ, Ñ, ü ... y unas cuantas más

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #5 (permalink)  
Antiguo 15/04/2012, 14:11
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años, 7 meses
Puntos: 27
Respuesta: Como pedir ingresar solo palabras!!!

Cita:
Iniciado por emprear Ver Mensaje
Te faltan la á, Á, é, è, ñ, Ñ, ü ... y unas cuantas más

Saludos
Upssss...si

O mejor aun porque no usar jquery

Código Javascript:
Ver original
  1. function valalpha(campo){
  2.     $(document).ready(function(){
  3.         $("#"+campo).alpha();
  4.     });
  5. }

Código HTML:
Ver original
  1. <input type="text" id="idval" onkeypress="valalpha('idval')" onkeyup="valalpha('idval')" />
Necesita la libreria y jquery.alphanumeric
  #6 (permalink)  
Antiguo 15/04/2012, 14:51
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: Como pedir ingresar solo palabras!!!

Cita:
Iniciado por oscarbt Ver Mensaje
Upssss...si

O mejor aun porque no usar jquery

Código Javascript:
Ver original
  1. function valalpha(campo){
  2.     $(document).ready(function(){
  3.         $("#"+campo).alpha();
  4.     });
  5. }

Código HTML:
Ver original
  1. <input type="text" id="idval" onkeypress="valalpha('idval')" onkeyup="valalpha('idval')" />
Necesita la libreria y jquery.alphanumeric
Me parece bien que aportes otras posibles soluciones, pero la script que deje anteriormente soluciona el problema en forma global y no necesita de librerías adicionales

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #7 (permalink)  
Antiguo 16/04/2012, 08:08
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 6 meses
Puntos: 1012
Respuesta: Como pedir ingresar solo palabras!!!

por pulir un poco el código de emprear
Cita:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>titulo</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script type="text/javascript">
function validar(idcampo, mensaje) {
var exp_reg = /^[a-z\u00C0-\u00ff]+$/i; // expresión regular para letras(máy o minus), acentuadas o no,
mensaje.innerHTML = exp_reg.test(idcampo) == true ? "Correcto" : "Incorrecto";
}
</script>

</head>
<body>
<form action="#">
<div>
<label for="nombre">Nombre</label>
<input type="text" onkeyup="validar(this.value, this.nextElementSibling);" />
<span id="mensaje_nombre"><!-- aqui el mensaje a medida que se introducen caracteres --></span>
<br />
<label for="apellido">Apellido</label>
<input type="text" onkeyup="validar(this.value, this.nextElementSibling);" />
<span id="mensaje_apellido"><!-- aqui el mensaje a medida que se introducen caracteres --></span>
</div>
</form>
</body>
</html>
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #8 (permalink)  
Antiguo 16/04/2012, 09:02
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: Como pedir ingresar solo palabras!!!

Correcta observación @isaBelM, bueno lo del this.value,nextElementSibling. En cuanto al operador ternario en determinados posts lo evito para hacer más claro el funcionamiento.
Si bien @garcia1808 ha respondido aun, agregaría una modificación extra, ya que si los valores a usar fuesen efectivamente nombre y apellido, existe siempre la posibilidad de que estos sean compuetos, por lo que requeriría de espacios en blanco, de ahi que nuestra validación de la cadena debería ser

Código Javascript:
Ver original
  1. // agregamos \s par permitir espacios
  2. var exp_reg = /^[a-z\s\u00C0-\u00ff]+$/i;
  3. // hacemos un trim para evitar que sean solo espacios en blanco
  4. idcampo =  idcampo.replace(/^\s+/g,'').replace(/\s+$/g,'');

la script final
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 exp_reg = /^[a-z\s\u00C0-\u00ff]+$/i; // expresión regular para letras(máy o minus), acentuadas o no,
  9. idcampo =  idcampo.replace(/^\s+/g,'').replace(/\s+$/g,'');// removemos espacios vacioas al inicio y final
  10. mensaje.innerHTML = exp_reg.test(idcampo) == true ? "Correcto" : "Incorrecto";
  11. }
  12. </head>
  13. <form action="#">
  14. <div>
  15. <label for="nombre">Nombre</label>
  16. <input type="text" onkeyup="validar(this.value, this.nextElementSibling);" />
  17. <span id="mensaje_nombre"><!-- aqui el mensaje a medida que se introducen caracteres --></span>
  18. <br />
  19. <label for="apellido">Apellido</label>
  20. <input type="text" onkeyup="validar(this.value, this.nextElementSibling);" />
  21. <span id="mensaje_apellido"><!-- aqui el mensaje a medida que se introducen caracteres --></span>
  22. </div>
  23. </form>
  24. </body>
  25. </html>

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #9 (permalink)  
Antiguo 16/04/2012, 14:44
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 6 meses
Puntos: 1012
Respuesta: Como pedir ingresar solo palabras!!!

en realidad para hacer el trim, validar espacio entre palabras y como máximo dos palabras, no es necesario usar replace(), se puede usar el cuantificador (?). vendría a ser algo así
Cita:
/^(([a-z\u00C0-\u00ff]+)((\s)([a-z\u00C0-\u00ff]+))?)$/
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}

Etiquetas: pedir
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 21:08.