Condividi tramite


Convalida dell'input

Nelle versioni 1.3 e successive dello schema, AdaptiveCards supporta la convalida dell'input lato client per i tipi di input.

Proprietà di convalida

Per la convalida in AdaptiveCards sono supportate le proprietà seguenti:

Input Proprietà
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

Per tutti i tipi di input è disponibile una proprietà errorMessage per specificare l'errore che deve essere visualizzato se l'utente immette un valore non valido.

Nota

In alcune piattaforme le proprietà min e max (inclusa maxLength) possono essere applicate direttamente dal controllo. È ad esempio possibile applicare una proprietà min per Input.Date impedendo agli utenti di selezionare una data prima del limite minimo in un controllo di selezione data. In tal caso, è possibile che il messaggio di errore non venga visualizzato.

Etichette

Un'altra proprietà aggiunta nella versione dello schema 1.3 per tutti gli elementi di input è la proprietà di stringa label. L'uso della proprietà label è il metodo consigliato per contrassegnare gli input in una scheda adattiva, davanti alla proprietà placeholder. Si tratta di un metodo semplice e rapido per etichettare gli input per gli autori di schede e offre i vantaggi seguenti:

  • Indicatori di convalida: come indicato in precedenza, gli input possono essere contrassegnati come obbligatori, quindi le etichette per gli input obbligatori avranno un indicatore visivo. Questo indicatore visivo è definito in HostConfig e, per impostazione predefinita, viene visualizzato come asterisco *.
  • Accessibilità: con una connessione tra etichette e input, le librerie del renderer possono impostare le proprietà necessarie per consentire agli utenti di usare prodotti di assistive technology (utilità per la lettura dello schermo) per poter interagire correttamente con gli input delle schede adattive.
    • Etichette e segnaposto: come illustrato da Katie Sherwin nell'articolo Placeholders in form fields are harmful (I segnaposto nei campi di un modulo sono dannosi), l'uso dei segnaposto presenta molte conseguenze negative, ad esempio la limitazione della memoria a breve termine degli utenti, l'aumento della difficoltà per gli utenti di verificare i relativi input prima dell'invio, la difficoltà di lettura per gli utenti in quanto, in genere, il testo del segnaposto presenta un contrasto dei colori insufficiente rispetto allo sfondo oppure le utilità di lettura dello schermo non leggono il testo del segnaposto, per citarne solo alcuni.
    • TextBlock e RichTextBlock: sebbene l'uso di altri elementi della scheda come etichette possa sembrare una soluzione efficace, presenta il problema di non poter applicare la prossimità tra input ed etichette. D'altra parte, l'uso della proprietà label garantisce che entrambi gli elementi visivi vengano visualizzati uno accanto all'altro in modo da favorire gli utenti che necessitano dell'ingrandimento dello schermo.

Campi da convalidare e inviare

Gli input vengono convalidati quando l'utente fa clic su un'azione Action.Submit nella scheda. Gli input che vengono convalidati e inviati per una determinata azione Action.Submit sono i seguenti:

  • Input nella stessa scheda dell'azione Action.Submit
  • Input in una qualsiasi scheda padre della scheda contenente l'azione Action.Submit, nel caso di una scheda associata a un'azione Action.ShowCard

Se gli input superano la convalida, i valori nei rispettivi campi verranno restituiti al client. Se invece non superano la convalida, verranno visualizzati i messaggi di errore relativi agli input non validi e l'invio non verrà eseguito.

Nota

Gli input non vengono convalidati o inviati se si trovano in una scheda figlio o in una scheda di pari livello di quella contenente l'azione Action.Submit. Sono incluse le schede risultanti da Action.ShowCards in ActionSets nel corpo di tale scheda. Questo comportamento è diverso da quello delle versioni del renderer precedenti la 2.0 e si applica alle schede di tutte le versioni dello schema, indipendentemente dal fatto che vengano utilizzate le proprietà di convalida dell'input.

Altre considerazioni e problemi noti

  • Non è consigliabile creare input con proprietà di convalida che potrebbero non essere sempre visibili a causa dell'interazione con Action.ToggleVisibility. I messaggi di errore e le indicazioni visive per la segnalazione di input non valido non verranno visualizzati se l'input non è al momento visibile, il che può generare confusione riguardo al motivo per cui l'invio è bloccato.

  • Il comportamento della convalida dell'input per gli host che usano schede popup show usando il "actions":"showCard":"actionMode":"popup" valore nella configurazione host non è ben definito. Le schede con visualizzazione popup potrebbero essere deprecate in una versione futura.