EF Número
Parámetros
- Tamaño visual: Determina la cantidad de caracteres que son
visibles sin scrollear, esto es el atributo size del
input
. Es un atributo estetico no afecta la validación.
- Tamaño Máximo: Pone un límite en la cantidad de caracteres que
es posible ingresar al
input
, incluyendo simbolos de puntuación, comas, decimales, etc. No hay siempre una relación directa entre el rango de un número y la cantidad de caracteres que este posee ya que por un lado los numeros pueden poseer o no decimales y por otro la mascara puede determinar que hayan o no caracteres de puntuacion. Por ejemplo en un rango[0..1000]
pueden contener potencialmente 10 caracteres (ej "$ 1.234,56") o solamente 5 (ej "1.234") determinar la cantidad máxima automáticamente implicaría parsear la mascara antes para determinar cuantos caracteres son posibles. De todas formas cuando existen decimales el límite de caracteres no sirve como validación (por lo dicho anteriormente).
- Máscaras: Formateo del numero
mientras tipea, solo sirve como algo estético y no se debe confiar
en su 'validación' porque solo se hace en javascript. Un ejemplo de
máscara sería
###.###,00
.
- Rango de valores: Intervalo de números permitidos. Los
corchetes incluyen el límite, los paréntesis no, por defecto
[0..*]
. Por ejemplo(10...200]
determina un rango desde 10 no inclusive hasta 200 inclusive. El rango se valida posteriormente al ingreso del número y no durante. Tener en cuenta que para hacer la comparación de números se utiliza el tipointeger
de los lenguajes y estos tienen un límite en la cantidad de dígitos soportados.
Actualmente estos 4 parametros determinan el comportamiento del ef en el cliente y su uso deberia seguir este razonamiento:
¿Necesito restringir a un rango de números dado? Uso el rango de valores permitidos
¿Sé de antemano cual es la cantidad maxima de caracteres que va a posser el numero formateado? Uso la Cant. Max. Caract.
¿El campo se ve demasiado "chico"? Uso el Tamaño visual
¿Quiero que el numero se vaya formateando a medida que tipeo o use una cantidad dada de decimales? Uso la Máscara.
Un uso incorrecto de estos parámetros puede hacer que alguno funciona
incorrectamente. Por ejemplo la Cant.Max.Caract.
influye sobre el Rango
posible de ingresar.