Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/05/2010, 05:02
Avatar de karlic0s
karlic0s
 
Fecha de Ingreso: abril-2007
Ubicación: Cartagena (Murcia)
Mensajes: 241
Antigüedad: 17 años, 6 meses
Puntos: 18
Modificar input onkeyup

Hola querida comunidad!

Me ha surgido un pequeño problema con un pequeño script y necesito de vuestra colaboración, a ver si alguien es tan amable de ayudarme con mi pequeño problema

Os pongo en situación tengo un campo input y una funcion, primero la función comprueba que el campo es numérico y segundo comprueba que es más pequeño que un número dado, lo que quiero hacer es que, en el caso de que no sea numérico el campo se borre y en el caso de que sea más grande el número éste cambie al valor máximo. Pongo en el código para que lo vean mejor:

Código Javascript:
Ver original
  1. function compruebanumero (formulari, valormax) {
  2.    
  3.     if(!isNaN(document.getElementById(formulari).value)) {
  4.     if(document.getElementById(formulari).value > valormax) {
  5. //no hace nada...
  6. document.getElementById(formulari).value = valormax;
  7. }
  8. } else {
  9. //esto si funciona
  10. document.getElementById(formulari).value = '';
  11. }  
  12. }
  13.  
  14.  
  15. <input id="id1" type="text" onKeyUp="compruebanumero ('id1','50');">

Mi problema viene porque esta comprobación: if(document.getElementById(formulari).value > valormax) se la pasa por el forro si el número es de 3 cifras o más, es decir, si pongo 54 funciona, 56 tambien... pero si pongo 100 o 230 no. Además quiero poner que solo deje meter enteros y si meto punto no se vacia el campo puesto que cabe la posibilidad de que sea número decimal y claro... tampoco se hacerlo :(.

Alguna solución? respecto a la comprobación si es mayor o no creo que es culpa de la cadena que no la lee como deberia, pero aun asi, sigo sin saber solucionarlo.

Un saludo y gracias de antemano