it-swarm-eu.dev

Come gestire le scelte a discesa correlate?

Ho un modulo contenente (tra le altre cose) 3 menu a discesa, ciascuno con circa 5-10 scelte. Le scelte in questi menu a discesa sono strettamente correlate e alcune delle permutazioni non saranno valide. Ciò significa anche che se l'utente modifica la selezione in uno dei menu a discesa, i valori correnti negli altri due potrebbero non essere validi.

Il mio doc progettista attualmente afferma che "se viene scelta una combinazione non valida, allora dovrebbe essere visualizzato un errore" e "per aiutare l'utente a scegliere combinazioni valide tutte le scelte negli elenchi a discesa che produrranno una combinazione non valida dovrebbero essere scarsamente illuminate nel menu a discesa ".

Non sono convinto che questo sia il modo migliore di affrontarlo, ma non riesco a pensare a alternative migliori. Ho pensato di combinarli in un unico menu a discesa contenente tutte le combinazioni valide, ma potrebbe anche essere ingombrante.

Qualcuno ha altre soluzioni?

8
IanR

Se puoi determinare un ordine tra i menu a discesa, la soluzione è relativamente semplice:

Ogni selezione a discesa ripristina le selezioni nei seguenti menu a discesa (a valle). Aggiorna inoltre i campi disponibili per adattarli alla selezione corrente in quel menu a discesa (non mostrato non consentito opzioni a tutti).

Considera ad esempio siti di mappe più vecchi: puoi scegliere uno stato, quindi una città e solo una strada. Sarebbe del tutto accettabile che se avessi cambiato lo stato, avresti perso la città che avevi scelto in precedenza.

Se non esiste nessun ordine distinto puoi:

  • Non consentire la selezione dei nuovi valori che si scontrano con le selezioni esistenti.
    Presumo che tu possa "scarseggiare" (come lo metti) queste opzioni nel menu a discesa anche prima della selezione.

  • "In condizioni di scarsa illuminazione" (come lo hai detto) nuovi valori problematici, ma consentono all'utente di selezionarli.
    È quindi possibile visualizzare una finestra di dialogo che spiega che il nuovo valore è problematico.
    L'utente può scegliere:

    • Ignora l'avviso e sostituisci, ovvero la nuova opzione è selezionata e reimposta i valori di conflitto precedentemente selezionati negli altri menu a discesa.
    • Rispettare l'avviso (chiudendo la finestra di dialogo) e selezionando un altro valore.
      .

    Ad ogni modo, la finestra di dialogo deve avere una casella di controllo "Ricorda scelta", quindi la prossima volta non disturberà l'utente.

7
Dan Barak

Anche se capisco che potrebbe esserci il problema della mancanza di spazio verticale, proverei sicuramente non usare i menu a discesa, proverei invece a utilizzare elementi di tipo elenco (selezionare più gruppi di input radio o ): ciò consente all'utente di vedere le modifiche in corso mentre seleziona qualcosa in un gruppo che influenza le opzioni in altri gruppi.

Inoltre, proverei almeno a) fornire un collegamento ai set di selezione più comuni b) provare a riprogettare il tutto. Questa interfaccia non può essere definita "semplice", per quanto regolare tu possa farlo :)

2
Jüri

Visto questo molte volte, e mentre la cosa ovvia è "non consentire" combinazioni non valide, presenta alcuni svantaggi:

  1. Potrebbe essere difficile passare a una combinazione valida perché i passaggi intermedi sono tutti "non consentiti". per esempio. se hai scelte A/B e C/D e A consentito solo con C e B con D, l'utente non può passare da A + C a B + D perché nessuno dei due menu a discesa passerà all'altra scelta. Questo può essere un problema speciale con un sistema più complicato e se l'utente non ha molta familiarità con quali combinazioni potrebbero essere vietate; la ricerca di passaggi intermedi legali può essere ridotta a tentativi ed errori.
  2. Il motivo alla base del divieto può essere oscuro e si desidera informare l'utente del motivo per cui la loro scelta non è valida.

Quello che vorrei proporre non è di impedire scelte non valide. Le tue specifiche non dicono che dovrebbero essere vietate; l'illuminazione scarsa non è la stessa. Rendi le scelte illegali distinte da quelle legali, per de-enfasi, ma consenti loro di essere scelte. Associa questo a un'area di messaggio che viene visualizzata quando viene scelta una combinazione illegale, fornendo il motivo e suggerendo un'alternativa (e non consentendo all'utente di procedere al passaggio successivo).

Tutto ciò è nullo se le scelte possono essere suddivise in una sequenza: quindi ha molto più senso presentare le scelte in sequenza e vietare quelle illegali quando viene presentata ogni scelta.

2
DJClayworth

Se alcune scelte non sono valide, semplicemente non dovresti visualizzarle. Ciò ridurrà la possibilità che venga visualizzato un errore per l'utente.

Se questo è per un'app Web, utilizzare JavaScript per eliminare le scelte non valide a seconda della selezione. Rivela progressivamente il secondo menu a discesa con le opzioni appropriate dopo che è stato utilizzato il primo menu a discesa. Idem per il terzo. Convalida lato server e solo se non viene convalidato dopo la convalida lato server, dovresti visualizzare un errore. Solo quelli con JavaScript disabilitato o quelli che stanno intenzionalmente cercando di bypassare il tuo modulo vedranno mai l'errore.

Se è per un'app desktop, usa lo stesso tipo di principio.

1
Virtuosi Media