Foros del Web » Programando para Internet » Javascript »

evento keypress desde funcion

Estas en el tema de evento keypress desde funcion en el foro de Javascript en Foros del Web. Buenas! Antes de nada decir que se que este tema esta tocado en muchos sitios pero he estado probando muchos metodos y ninguno llega a ...
  #1 (permalink)  
Antiguo 04/04/2012, 13:51
 
Fecha de Ingreso: diciembre-2010
Mensajes: 8
Antigüedad: 13 años, 4 meses
Puntos: 0
evento keypress desde funcion

Buenas!

Antes de nada decir que se que este tema esta tocado en muchos sitios pero he estado probando muchos metodos y ninguno llega a funcionarme del todo o incluso correctamente, de hay el post, bueno una vez dicho esto. tengo el siguiente codigo.

Código Javascript:
Ver original
  1. function numeros(evento){  //FUNCION PARA CONTROLAR KEYPRESS
  2.         var numero = window.event || evento;
  3.     if(numero.charCode >= 48 && numero.charCode <= 57){
  4.             alert("ME VES");
  5.         }
  6. }
  7.  
  8. window.onload = function() { //FUNCION QUE ASIGNA LAS FUNCIONES XD
  9.    
  10.         var formulario = document.getElementById("form_reg");
  11.         var camposInput = formulario.getElementsByTagName("input");
  12.        
  13.         //Asignamos a todos los input una accion para la perdida del foco  
  14.         for(var i=0;i<camposInput.length; i++){
  15.             if(camposInput[i].type == "text") {
  16.                                camposInput[i].onfocus = quitar_datos;
  17.                                camposInput[i].onblur = perdida_foco_textos;
  18.                                camposInput[i].onkeypress = numeros;
  19.                       }
  20.         }      
  21. }

Tengo una funcion "numeros" que recoge el valor ascii de la tecla pulsada, para probar que me distingue bien entre numeros y letras tengo un alert como se puede ver. El problema es que no me funciona el alert. Me gustaria que si no es un numero me descarte la tecla pulsada. ¿Porque no me muestra el mensaje?¿Como podria indicar que acepte solo los numeros?

Saludos.

Última edición por ZomWeed; 04/04/2012 a las 14:05
  #2 (permalink)  
Antiguo 04/04/2012, 14:09
 
Fecha de Ingreso: marzo-2011
Mensajes: 13
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: evento keypress desde funcion

por favor prueba este codigo


Código Javascript:
Ver original
  1. <html>
  2.    <head>
  3.     <script>
  4.    
  5.       function solonumero(evt)
  6.       {
  7.          var charcode = (evt.which) ? evt.which : event.keycode
  8.          if (charcode > 31 && (charcode < 48 || charcode > 57))
  9.             return false;
  10.  
  11.          return true;
  12.       }
  13.      </script>
  14.      
  15.    </head>
  16.    <body>
  17.       <input id="text" onkeypress="return solonumero(event)" type="text" name="txttexto">
  18.    </body>
  19. </html>
  #3 (permalink)  
Antiguo 04/04/2012, 17:32
 
Fecha de Ingreso: diciembre-2010
Mensajes: 8
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: evento keypress desde funcion

buenas chicoxml, funciona perfecto xD. Pero si sustituyo:

<input id="text" onkeypress="return solonumero(event)" type="text" name="txttexto">

por la linea que tengo arriba de agregar la funcion desde window.onload en el .js ya no me funciona ¿acaso no se puede utilizar el keypress de esta manera?

Me podrias comentar que hace exactamente esta linea: (evt.which) ? evt.which : event.keycode, no entiendo muy bien la parte del which.

Gracias por contestar, Un Saludo.
  #4 (permalink)  
Antiguo 04/04/2012, 17:41
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 3 meses
Puntos: 29
Respuesta: evento keypress desde funcion

which es para internet explorer, y keycode para el resto.
La condición viene a decir que si está disponible which lo use, y sino que use keycode.

Es posible que te confundas por la condición en línea:
Código Javascript:
Ver original
  1. variable = (condicion) ? "se cumple" : "no se cumple";
Saludos.
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.

Etiquetas: evento, formulario, funcion, input, keypress
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:15.