Gracias, las pruebas ya las he hecho en unos 20 navegadores diferentes, pero...

El caso es que si, efectivamente los navegadores deberian comprobar que si el 
"max" introducido tiene 3 digitos no se permita introducir más de 3, pero en la 
práctica este comportamiento únicamente lo llevan a cabo si añades el 
maxlength, otro asunto, para afinar más seria la imposibilidad de introducir 
caracteres no numéricos, ni relacionados con los números, pero esto 
probablemente debería conllevar un nuevo atributo para indicar el sistema de 
numeración o simplemente permitir el atributo "pattern", probablemente más 
adecuado que el maxlength pero que es aun menos soportado.

Mi duda era por si habia alguna otra alternativa "válida" que hiciera esto 
posible.

De momento, efectivamente, he decidido publicar con tipo number pero añadiendo 
el maxlength, que aunque no valida, proporciona una funcionalidad adecuada.

Saludos,
Jose


El 24/01/2011, a las 16:54, The CHK Server Project escribió:

> Hola, Jose:
> 
> Según he estado viendo en la especificación[1] el rango se controla con los
> parámetros min y max.
> Para usabilidad veo sentido a lo que dices de controlar el maxlength, pero
> sin eso, cuando envías
> el formulario te da un aviso si las cifras están fuera de rango... (podéis
> probarlo adaptando w3schools[2])
> 
> A lo que quiero llegar, es que estrictamente hablando se cumple la
> validación de los inputs, aunque
> en este caso no puedes "controlarlo" hasta que el usuario realiza la acción
> de "submit". Creo que es
> mejor esto que hacer conversiones a string y perder la usabilidad de los
> botonos de incremento/decremento.
> 
> Un saludo.
> 
> [1] http://www.w3.org/TR/html-markup/input.number.html
> [2] http://www.w3schools.com/html5/tryit.asp?filename=tryhtml5_form_email
> 
> El 23 de enero de 2011 12:03, Jose Gil <clli...@gmail.com> escribió:
> 
>> Hola a todos.
>> 
>> Hace dias que estoy dandole vueltas a la validacion de inputs de numeros en
>> formularios html5 y no he encontrado la forma de controlar la longitud
>> maxima.
>> 
>> Si escribo:
>> <input type="number" min="0" max="999" id="x" name="x"  maxlength="3"
>> value="0" title="algo" class="numero"/>
>> 
>> Funciona pero no valida el estandar puesto que "maxlength" no es soportado
>> para "number".
>> 
>> Si escribo:
>> <input type="number" min="0" max="999" id="x" name="x"  pattern="[0-9]{3}"
>> value="0" title="algo" class="numero"/>
>> 
>> Ni funciona (supongo que no está soportado por el navegador) ni valida el
>> estandar puesto que "pattern" tampoco es soportado para "number".
>> 
>> Evidentemente no se puede solucionar con CSS puesto que no es su funcion.
>> (Si solucioné con CSS el size).
>> 
>> Si se convierte el campo a text y filtrando con pattern sigue sin
>> funcionar.
>> Si se le añade maxlength funcionaría.
>> Para validar en este caso hay que eliminar los atributos min y max.
>> En este caso se pierden también las flechas de incremento/decremento y las
>> adaptaciones de teclado en móviles.
>> 
>> 
>> Alguien sabe como controlar con number (sin convertir a text ni javascript)
>> la longitud al mismo tiempo que valida html5.
>> 
>> 
>> Gracias por anticipado.
>> 
>> Saludos,
>> Jose
>> _______________________________________________
>> Lista de distribución Ovillo
>> Para escribir a la lista, envia un correo a Ovillo@lists.ovillo.org
>> Puedes modificar tus datos o desuscribirte en la siguiente dirección:
>> http://lists.ovillo.org/mailman/listinfo/ovillo
>> 
> _______________________________________________
> Lista de distribución Ovillo
> Para escribir a la lista, envia un correo a Ovillo@lists.ovillo.org
> Puedes modificar tus datos o desuscribirte en la siguiente dirección: 
> http://lists.ovillo.org/mailman/listinfo/ovillo

_______________________________________________
Lista de distribución Ovillo
Para escribir a la lista, envia un correo a Ovillo@lists.ovillo.org
Puedes modificar tus datos o desuscribirte en la siguiente dirección: 
http://lists.ovillo.org/mailman/listinfo/ovillo

Responder a