Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Input que acepte letras con acentos

Estas en el tema de Input que acepte letras con acentos en el foro de Jquery en Foros del Web. Buenas tardes, tengo esta función que me valida que solo ingrese letras pero me gustaría que también acepte la letras que tiene acentos, pero cuando ...
  #1 (permalink)  
Antiguo 02/03/2015, 11:28
 
Fecha de Ingreso: septiembre-2011
Mensajes: 233
Antigüedad: 12 años, 7 meses
Puntos: 1
Input que acepte letras con acentos

Buenas tardes, tengo esta función que me valida que solo ingrese letras pero me gustaría que también acepte la letras que tiene acentos, pero cuando intento me salen el mensaje;, que debo de agregarle para que acepte también las letras con acentos?

Este es el código:
Código:
$(document).ready(function({
	$("#id").keypress(function(event) {
	  soloNumeros();
   });
function soloLetras(){
	if((event.keyCode!=32) && (event.keyCode<65) || (event.keyCode>90) && (event.keyCode<97) || (event.keyCode>122)){
		event.returnValue=false;
		window.alert("Solo se debe de ingresar letras.");
	}

}
});
  #2 (permalink)  
Antiguo 02/03/2015, 13:17
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 9 años, 9 meses
Puntos: 44
Respuesta: Input que acepte letras con acentos

Esa función sirve para acentos. Lo que hay es un error de sintaxis en el document.ready. Dice

Código Javascript:
Ver original
  1. $(document).ready(function({

Y debería decir:

Código Javascript:
Ver original
  1. $(document).ready(function(){

También veo que estás llamando a soloNumeros(). Me imagino que en realidad querías llamar a soloLetras()?

Y por último, no le estás pasando el evento a la función. En un Chrome nuevo funciona pero en versiones anteriores u otros navegadores tengo mis dudas.

Saludos
  #3 (permalink)  
Antiguo 02/03/2015, 16:44
 
Fecha de Ingreso: septiembre-2011
Mensajes: 233
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Input que acepte letras con acentos

Hola GeekGirl gracias por responderme, arregle los detalles que me comentaste y me quedo así pero el problema que surge ahora es que si lo pruebo en firefox al ingresar una letra me sale el mensaje y no me marca la letra con acento, coloco el código que arregle para ver que tengo malo:
Código:
$(document).ready(function(){
//validar que solo acepte letras
	$("#nombre, #apellido, #dpto").keypress(function(event) {
		if((event.keyCode!=32) && (event.keyCode<65) || (event.keyCode>90) && (event.keyCode<97) || (event.keyCode>122)){
		event.returnValue=false;
		window.alert("Solo se debe de ingresar letras.");
	}
	});
});
Se lo estoy aplicando a 3 text, que debo de arreglarle?
  #4 (permalink)  
Antiguo 03/03/2015, 06:41
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 9 años, 9 meses
Puntos: 44
Respuesta: Input que acepte letras con acentos

Algunos browsers levantan el valor de la tecla presionada de otra forma. Con este código no deberías tener problemas:

Código Javascript:
Ver original
  1. $(document).ready(function(){
  2. //validar que solo acepte letras
  3.   $("#nombre, #apellido, #dpto").keypress(function(event) {
  4.     var key = event.which || event.keyCode;
  5.  
  6.     if((key!=32) && (key<65) || (key>90) && (key<97) || (key>122)){
  7.       event.returnValue=false;
  8.       window.alert("Solo se debe de ingresar letras.");
  9.     }
  10.   });
  11. });

Saludos :)
  #5 (permalink)  
Antiguo 03/03/2015, 07:42
 
Fecha de Ingreso: septiembre-2011
Mensajes: 233
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Input que acepte letras con acentos

Hola GeekGirl lo probé pero pasa algo raro, cuando ingreso número me sale el mensaje solo letras pero después que le doy aceptar a la alerta en el input me muestra el número y también cuando le doy a la tecla para colocar el acentos y luego la a ejemplos igual me sale el mensaje y no debería de mostrarse, solo debería de mostrar las letras y con acentos y la ñ, como se tendría que hacer para que sino es una letra no la escriba en el input?
  #6 (permalink)  
Antiguo 03/03/2015, 10:48
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 9 años, 9 meses
Puntos: 44
Respuesta: Input que acepte letras con acentos

Código Javascript:
Ver original
  1. $(document).ready(function(){
  2. //validar que solo acepte letras
  3.   $("#nombre, #apellido, #dpto").keypress(function(event) {
  4.     var key = event.which || event.keyCode;
  5.  
  6.     if((key!=32) && (key<65) || (key>90) && (key<97) || (key>122  && key != 241 && key != 209)){
  7.       window.alert("Solo se debe de ingresar letras.");
  8.       return false;
  9.     }
  10.   });
  11. });
  #7 (permalink)  
Antiguo 03/03/2015, 13:52
 
Fecha de Ingreso: septiembre-2011
Mensajes: 233
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Input que acepte letras con acentos

No sé que pasa pero la ñ no me acepta y el acento no me lo permite, de verdad que noc que hacer
  #8 (permalink)  
Antiguo 04/03/2015, 06:32
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 9 años, 9 meses
Puntos: 44
Respuesta: Input que acepte letras con acentos

Con esto que le agregué

Código Javascript:
Ver original
  1. key != 241 && key != 209

Las eñes tanto mayúsculas como minúsculas las acepta sin ningún problema. Y los acentos siempre funcionaron. En qué navegador lo estás probando? A mi me funcionó bien en Chrome y Firefox que eran los que parecían darte problemas. Por ahí el fallo está en otra parte de tu código.

Prueba este ejemplo a ver qué pasa:

Código HTML:
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8" />
  <title>Testing</title>
  <script src="//code.jquery.com/jquery-1.10.2.js"></script>
</head>
  <body>    
      <input type="text" id="nombre" /> 
      <script type="text/javascript">
        $(document).ready(function(){
          $("#nombre").keypress(function(event) {
            var key = event.which || event.keyCode;
         
            if((key!=32) && (key<65) || (key>90) && (key<97) || (key>122 && key != 241 && key != 209)){
              window.alert("Solo se debe de ingresar letras.");
              return false;
            }
          });
        });
      </script>
  </body>
</html> 
  #9 (permalink)  
Antiguo 04/03/2015, 10:19
 
Fecha de Ingreso: septiembre-2011
Mensajes: 233
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Input que acepte letras con acentos

eso no importa la versión de jquery? porque estoy utilizando jquery-1.11.1.min.js
  #10 (permalink)  
Antiguo 04/03/2015, 11:33
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 9 años, 9 meses
Puntos: 44
Respuesta: Input que acepte letras con acentos

No debería molestar. Esto es algo muy básico. Aún así probé con la versión tuya y no da ningún error.

Te funcionó el ejemplo que te pasé?
  #11 (permalink)  
Antiguo 04/03/2015, 13:45
 
Fecha de Ingreso: septiembre-2011
Mensajes: 233
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Input que acepte letras con acentos

Cita:
Iniciado por GeekGirl Ver Mensaje
No debería molestar. Esto es algo muy básico. Aún así probé con la versión tuya y no da ningún error.

Te funcionó el ejemplo que te pasé?
Hola GeekGirl si me acepta la ñ pero los acentos no no sé si será esto, pero en mi teclado para colocar el acento tengo que presionar las teclas
Código:
' y la tecla a
agregue key != 225 y si me la acepta pero como se que key son la eiou con acento?
  #12 (permalink)  
Antiguo 04/03/2015, 13:48
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 9 años, 9 meses
Puntos: 44
Respuesta: Input que acepte letras con acentos

En todos los teclados hay que apretar una tecla para los acentos. En el mío es la ´ y luego la letra. No te queda otra que poner todos los códigos o hacerte de una expresión regular para validar lo que se va ingresando en el input.

Saludos
  #13 (permalink)  
Antiguo 04/03/2015, 14:05
 
Fecha de Ingreso: septiembre-2011
Mensajes: 233
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Input que acepte letras con acentos

Hola GeekGirl, agregue todos los código, aunque el codicionar if es larguisimo jejeje, esta bien así? Ahora si acepta los acentos.
Código:
$(document).ready(function(){
          $("#nombre").keypress(function(event) {
            var key = event.which || event.keyCode;
        
            if((key!=32) && (key<65) || (key>90) && (key<97) || (key>122 && key != 241 && key != 209 && key != 225 && key != 233 && key != 237 && key != 243 && key != 250 && key != 193 && key != 201 && key != 205 && key != 211 && key != 218)){
              window.alert("Solo se debe de ingresar letras.");
              return false;
            }
          });
        });
  #14 (permalink)  
Antiguo 05/03/2015, 06:21
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 9 años, 9 meses
Puntos: 44
Respuesta: Input que acepte letras con acentos

Si funciona y te sirve, está perfecto! Hay muchas formas de solucionar un mismo problema.

Saludos :)
  #15 (permalink)  
Antiguo 05/03/2015, 08:55
 
Fecha de Ingreso: septiembre-2011
Mensajes: 233
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Input que acepte letras con acentos

Muchas gracias GeekGirl

Etiquetas: acentos, input, letras
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 22:48.