Foros del Web » Programando para Internet » Javascript »

No Valida BIEN!!!!!

Estas en el tema de No Valida BIEN!!!!! en el foro de Javascript en Foros del Web. No puedo solucionar este problemas que ya no se que intentar para resolverlo a travez de EXPRESION REGULAR no quiero por el numero de tecla ...
  #1 (permalink)  
Antiguo 03/07/2012, 19:43
 
Fecha de Ingreso: noviembre-2010
Mensajes: 42
Antigüedad: 13 años, 4 meses
Puntos: 2
Exclamación No Valida BIEN!!!!!

No puedo solucionar este problemas que ya no se que intentar para resolverlo a travez de EXPRESION REGULAR no quiero por el numero de tecla sino solo por la expresion regular q me Acepte Ñ y que no se escriban los numeros por el keypad del teclado.

en otras palabras PORQUE NO ME ACEPTA Ñ
Y PORQUE ME ACEPTA LOS NUMEROS DEL KEYPAD?????????????????????
ayudaaaaaaaaaaaa....

Código:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>validar</title>
</head>

<body>
<script>
function validar(e){
	var exp=/[a-zA-ZñÑ\s]/;
	return exp.test(String.fromCharCode(e.which));
}
</script>
 <input type="text" id="campo_de_prueba2" name="textfield" onKeyDown="return validar(event)" />
</body>
</html>
  #2 (permalink)  
Antiguo 03/07/2012, 22:02
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 9 meses
Puntos: 1567
Respuesta: No Valida BIEN!!!!!

Usa esto
http://www.forosdelweb.com/f13/campo...8/#post4219397

Si no querés los números, remové el \d de la expresión regular
SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 04/07/2012, 08:00
 
Fecha de Ingreso: noviembre-2010
Mensajes: 42
Antigüedad: 13 años, 4 meses
Puntos: 2
Respuesta: No Valida BIEN!!!!!

Listo ya lo resolvi, Solo tenia que cambiar el onKeyDown por onKeyPress, ya que noce porque en onKeyDown el codigo de los numeros del teclado de arriba son diferentes a los numeros del keypad. si quieren prueben presionando el nro 1 en la parte de arriba del teclado y luego el 1 en el keypad para que vean que les da una codificacion diferente en onKeyDown pruebenlo aqui http://asquare.net/javascript/tests/KeyCode.html.

en el codigo que publique arriba cambien onKeyDown por onKeyPress y veran que NO ACEPTA LOS NUMEROS DEL KEYPAD en cambio como estaba con onKeyDown SI ME ACEPTABA LOS NUMEROS DEL KEYPAD.

en solucion quedaria asi:
Código Javascript:
Ver original
  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  5. <title>validar</title>
  6. </head>
  7.  
  8. <body>
  9. <script>
  10. function validar(e){
  11.     var exp=/[a-zA-ZñÑ\s]/;
  12.     return exp.test(String.fromCharCode(e.which));
  13. }
  14. </script>
  15.  <input type="text" id="campo_de_prueba2" name="textfield" onKeyPress="return validar(event)" />
  16. </body>
  17. </html>

Gracias de todas maneras emprear.

Última edición por leonardo308; 04/07/2012 a las 08:08
  #4 (permalink)  
Antiguo 04/07/2012, 13:32
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 9 meses
Puntos: 1567
Respuesta: No Valida BIEN!!!!!

Supongo que si en tu ejemplo aceptáste la ñÑ. también deberías aceptar á, É, ü. Ü. y otros caracteres latinos. Habría que saber que tipo de dato estás validando

SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #5 (permalink)  
Antiguo 04/07/2012, 22:13
 
Fecha de Ingreso: noviembre-2010
Mensajes: 42
Antigüedad: 13 años, 4 meses
Puntos: 2
Respuesta: No Valida BIEN!!!!!

me funciona bien mira como esta quedando. alguna sugerencia para mejorarlo seria buena.
Tengo un js asi:
Código Javascript:
Ver original
  1. $(function() {
  2. $("#campo1").lemez_aceptar("texto");
  3. $("#campo2").lemez_aceptar("numero");
  4. $("#campo3").lemez_aceptar("correo");
  5. });
y la libreria que estoy haciendo asi:

Código Javascript:
Ver original
  1. jQuery.fn.lemez_aceptar=function(tipo) {
  2.     var bueno=true;
  3.     var validar_al_final=false;
  4.    
  5.     switch(tipo){
  6.         case "texto":
  7.             var exp=/[a-zA-Z \u00C0-\u00ff\s]/;
  8.             var msj="Advertencia:\n\nSolo se acepta Texto.";
  9.         break;
  10.         case "texto_especial":
  11.             var exp=/[a-zA-Z., \u00C0-\u00ff\s]/;
  12.             var msj="Advertencia:\n\nSolo se acepta texto comas y puntos.";
  13.         break;
  14.         case "numero":
  15.             var exp=/[\d]/;
  16.             var msj="Advertencia:\n\nSolo se aceptan Numeros.";
  17.         break;
  18.         case "numero_especial":
  19.             var exp=/[\d.,]/;
  20.             var msj="Advertencia:\n\nSolo se aceptan Numeros.";
  21.         break;
  22.         case "correo":
  23.             var exp=/^(.+\@.+\..+)$/;
  24.             var validar_al_final=true;
  25.             var msj="Advertencia:\n\nDebe introducir un correo electronico valido Ej: [email protected]";
  26.         break;
  27.        
  28.        
  29.     }
  30.    
  31.     //funcion que en realidad valida
  32.     $(this).keypress(function(e) {
  33.         if(validar_al_final==false){
  34.             bueno=exp.test(String.fromCharCode(e.which));
  35.             if(e.which==8 || e.which==0) bueno=true;
  36.                 return bueno;
  37.         }
  38.     });
  39.    
  40.     //muestra el mensaje de error.
  41.     $(this).keyup(function() {
  42.         if(validar_al_final==false){   
  43.             if(bueno==false){
  44.                 alert(msj);
  45.             }
  46.         }
  47.     });
  48.    
  49.      
  50.    
  51.      var value = $(this);
  52.         $("form").submit(function() {
  53.         if(exp.test(value.val())==false){
  54.             $(value).css("border-color","#CC0000");
  55.             alert(msj);
  56.             return false;
  57.             }else{
  58.                 $(value).css("border-color","#ccc");
  59.                 return true;
  60.                
  61.                 }
  62.        
  63.     });
  64.    
  65. };


funciona bien me imagino que lo que tu me tratas de decir es lo que hace el \u00C0-\u00ff\

Etiquetas: eñe, html, validar
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 22:57.