- Impedir que pongan puntos, que cuando pulsen el punto, no haga nada. Tiene la desventaja de que si no se dan cuenta de que no ha puesto nada, sigan escribiendo pensando que están poniendo decimales.
- Cambiar de forma automática el punto por una coma. En este caso, el inconveniente estaría en que si alguno tiene la costumbre de poner un punto como separador de miles, acabaríamos con un numero raro con varias comas.
- Que cuando pulsen el punto les salte un mensajito diciendo que no se admite el punto, que para separar decimales hay que usar obligatoriamente la coma. Este es el más coñazo para el usuario, pero el que mejor resultado tendría, ya que no podrían poner punto y además se enteraría de ello.
He estado haciendo pruebas con la última opción con este código:
Código Javascript:
Ver original
<script type="text/javascript"> function displayunicode(e){ var unicode=e.keyCode? e.keyCode : e.charCode if (unicode == 190) { alert("No está permitido el uso de puntos. Por favor, use la coma para separar decimales") } } </script> <form> <input type="text" onkeydown="displayunicode(event); this.select()" /> </form>
Pero el problema está en que si uso onkeydown, onkeyup o onkeypress, solo me deja escribir un carácter. O bien va sustituyendo cada vez que pulso una tecla o si pulsas varias de forma seguida, lo que hace es seleccionar lo escrito, con lo que si sigues escribiendo borras lo que había.
Lo que me gustaría es que si el usuario va escribiendo y no pulsa el punto, simplemente no pase nada, que deje seguir escribiendo, y en el caso de que pulse el punto, salte el alert y solo se borre el punto, pero que respete el resto del contenido del campo. ¿Es posible hacerlo?
Salu2 y gracias