Validación de entrada

En las versiones 1.3 y posteriores del esquema, las tarjetas adaptables admiten la validación de entrada en el lado del cliente de los tipos de entrada.

Propiedades de validación

Se admiten las propiedades siguientes para la validación en tarjetas adaptables:

Entrada Propiedades
Input.ChoiceSet isRequired
Input.Date isRequired
min
max
Input.Number isRequired
min
max
Input.Text isRequired
regex
maxLength
Input.Time isRequired
min
max
Input.Toggle isRequired

Hay una propiedad errorMessage disponible en todos los tipos de entrada para especificar qué error debe mostrarse a un usuario si escribe un valor no válido.

Nota

El control puede aplicar directamente las propiedades min y max (incluida maxLength) en algunas plataformas. Por ejemplo, se puede aplicar una propiedad min en Input.Date al no permitir que los usuarios seleccionen una fecha anterior a la mínima en un selector de fecha. En ese caso, es posible que no se muestre el mensaje de error.

Etiquetas

Otra propiedad agregada en la versión de esquema 1.3 para todos los elementos de entrada es la propiedad de cadena label. El uso de la propiedad label es el método recomendado para etiquetar entradas en una tarjeta adaptable en relación con la propiedad placeholder. Es una forma sencilla y concisa de etiquetar entradas para los autores de tarjetas y presenta las siguientes ventajas:

  • Indicadores de validación: tal y como se ha mencionado anteriormente, las entradas ahora se pueden marcar como necesarias y las etiquetas de estas entradas necesarias incluirán un indicador visual junto a ellas. Este indicador visual se define en HostConfig y, de forma predeterminada, se representa como un asterisco *.
  • Accesibilidad: al tener una conexión entre etiquetas y entradas, las bibliotecas de representadores pueden establecer las propiedades necesarias para permitir que los usuarios que usan tecnologías de asistencia (lectores de pantalla) puedan interactuar correctamente con las entradas dentro de las tarjetas adaptables.
    • Etiquetas frente a marcadores de posición: tal y como Katie Sherwin explica en el artículo Los marcadores de posición de los campos de formulario son perjudiciales, el uso de marcadores de posición tiene muchas consecuencias negativas, por ejemplo, reducen la memoria a corto plazo de los usuarios, les dificulta la posibilidad de verificar sus entradas antes del envío y les complica su lectura, ya que, por ejemplo, en general el texto de los marcadores de posición tiene un contraste de color deficiente con respecto a la pantalla o los lectores de pantalla no leen el texto del marcador de posición.
    • TextBlock y RichTextBlock: aunque es posible que el uso de otros elementos de tarjetas como etiquetas parezca una buena solución, ello presenta el problema de que no permite aplicar la proximidad entre las entradas y las etiquetas. En cambio, mediante el uso de la propiedad label, podemos asegurarnos de que ambos elementos visuales se representan junto a los otros, lo que resulta de ayuda para los usuarios que necesitan lupas para la pantalla.

Campos que se validarán y enviarán

Las entradas se validarán cuando el usuario haga clic en una acción Action.Submit en la tarjeta. Las entradas que se validarán y enviarán para una acción Action.Submit determinada son:

  • Entradas en la misma tarjeta que Action.Submit
  • Entradas en cualquier tarjeta principal de la tarjeta que contenga Action.Submit en el caso de una tarjeta bajo Action.ShowCard

Si estas entradas pasan la validación, los valores de sus campos se devolverán al cliente. Si no pasan la validación, se mostrarán mensajes de error de las entradas no válidas y no se enviarán.

Nota

Las entradas no se validarán ni enviarán si se encuentran en una tarjeta que es una tarjeta secundaria o relacionada de la tarjeta que contiene Action.Submit. Esto incluye las tarjetas de Action.ShowCards en ActionSets en el cuerpo de esa tarjeta. Se trata de un cambio de comportamiento de las versiones del representador anteriores a la 2.0 y se aplica a las tarjetas de todas las versiones de esquema, independientemente de si se usan las propiedades de validación de entrada.

Otras consideraciones y problemas conocidos

  • No se recomienda crear entradas con propiedades de validación que es posible que no siempre estén visibles debido a la interacción con Action.ToggleVisibility. Los mensajes de error y las indicaciones visuales de que la entrada no es válida no se mostrarán si la entrada no está visible actualmente, lo que puede causar confusión a los usuarios sobre por qué se bloquea su envío.

  • El comportamiento de la validación de entrada para los hosts que usan las tarjetas emergentes con el valor de "actions":"showCard":"actionMode":"popup" en su configuración de host no está bien definido. Es posible que las tarjetas emergentes se consideren en desuso en una versión futura.