Muchas gracias jorcom, ya funciona a la perfección :)
he observado los cambios y entiendo perfectamente lo que has hecho, pero dos preguntas:
No es necesario crear la variable valor en la función javascript? Lo dijo porque en tu código no pones var valor.
Y por otro lado, si yo en el onchange le dijo que pase como parametro this.value, no le estoy pasando el valor actual ya? Es decir, no estoy haciendo lo mismo que poner en la función el valor.value.length?
Son preguntas tontas, pero que me ayudarán a entender mejor cómo funciona el javascript
Un saludo y gracias otra vez!