it-swarm-eu.dev

Jak zvládnout výběr související s rozbalovací nabídkou?

Mám formulář obsahující (mimo jiné) 3 rozevírací seznamy, každý s asi 5-10 možnostmi. Volby v těchto rozbalovacích seznamech úzce souvisejí a některé z permutací budou neplatné. To také znamená, že pokud uživatel změní výběr v jednom z rozevíracích seznamů, mohou být aktuální hodnoty v ostatních dvou neplatné.

Můj návrhový dokument v současné době uvádí, že „pokud je vybrána neplatná kombinace, měla by se zobrazit chyba“ a „aby se uživateli umožnilo vybrat platné kombinace, všechny volby v rozevíracích seznamech, které vytvoří neplatnou kombinaci, by měly být v rozbalovacím seznamu slabě osvětlené. ".

Nejsem přesvědčen, že je to nejlepší způsob, jak se s tím vypořádat, ale nedokážu vymyslet lepší alternativy. Přemýšlel jsem o jejich sloučení do jediného rozevíracího seznamu obsahujícího všechny platné kombinace, ale to by také mohlo být obtížné.

Má někdo jiná řešení?

8
IanR

Pokud můžete určit pořadí mezi rozevíracími seznamy, řešení je relativně snadné:

Každý výběr z rozevíracího seznamu resetuje výběr v následujících rozevíracích seznamech (za =) - Rovněž aktualizuje dostupná pole tak, aby odpovídala aktuálnímu výběru v tomto rozevíracím seznamu (nezobrazuje nepovolené) možnosti).

Zvažte například starší mapy: Můžete si vybrat stát, pak město a teprve pak ulici. Bylo by docela přijatelné, že kdybyste změnili stav, ztratili byste město, které jste si dříve vybrali.

Pokud neexistuje žádný odlišný řád , můžete:

  • Zakázat výběr nových hodnot, které jsou v rozporu s existujícím výběrem.
    Předpokládám, že můžete tyto možnosti v rozevíracím seznamu „slabě osvětlit“ (před samotným výběrem) ještě před výběrem.

  • „Nízké osvětlení“ (jak jste to uvedl) takové problematické nové hodnoty, ale umožňují uživateli je vybírat.
    Poté můžete zobrazit dialogové okno s vysvětlením, že nová hodnota je problematická.
    Uživatel si může vybrat:

    • Zrušit varování a přepsat - tj. Je vybrána nová možnost a resetuje hodnoty střetů dříve vybrané v ostatních rozevíracích seznamech.
    • Respektujte varování (zavření dialogu) a výběr jiné hodnoty.
      .

    V každém případě musí mít dialog zaškrtávací políčko „zapamatovat si volbu“, takže příště uživatel nebude chybovat.

7
Dan Barak

I když chápu, že by zde mohl být problém s nedostatkem vertikálního prostoru, rozhodně bych se pokusil nepoužívat rozevírací seznamy, zkusil bych místo toho použít prvky typu seznamu (vyberte více skupin nebo skupiny rádiových vstupů) ) - to umožňuje uživateli vidět změny, které se dějí, zatímco vybere něco v jedné skupině, které ovlivní možnosti v jiných skupinách.

Rovněž - pokusil bych se alespoň a) poskytnout zkratku k většině běžných výběrových sad b) zkusit přepracovat celou věc. Toto rozhraní nelze nazvat „jednoduchým“, bez ohledu na to, jak hladké to dokážete :)

2
Jüri

Viděno to mnohokrát, a zatímco je zřejmé, že je „zakázat“ neplatné kombinace, má to některé nevýhody:

  1. Může být obtížné přejít na platnou kombinaci, protože všechny přechodné kroky jsou „zakázány“. např. Pokud máte na výběr A/B a C/D a A je povoleno pouze u C a B s D, pak uživatel nemůže přepnout z A + C na B + D, protože ani jedna rozbalovací nabídka nepřepne na jinou volbu. To může být zvláštním problémem s komplikovanějším systémem a pokud uživatel není příliš obeznámen s tím, jaké kombinace mohou být zakázány; nalezení legálních mezistupnů se může scvrknout na pokus a omyl.
  2. Důvod, který je za tímto zákazem, může být nejasný a vy chcete uživatele informovat o důvodu, proč je jeho volba neplatná.

To, co navrhuji, není zakázat neplatná rozhodnutí. Vaše specifikace neříká, že by měly být zakázány; slabé osvětlení není stejné. Rozlišujte protiprávní rozhodnutí od legálních, a to bez zdůraznění, ale nechte je vybrat. Spojte to s oblastí zpráv, která se zobrazí, když je vybrána nelegální kombinace, s uvedením důvodu a navržením alternativy (a neumožněním uživateli přistoupit k dalšímu kroku).

To vše je neplatné a neplatné, pokud je možné volby rozdělit do posloupnosti: pak má mnohem větší smysl prezentovat volby postupně a zakazovat jakékoli nezákonné, když je každá volba předložena.

2
DJClayworth

Pokud jsou některé možnosti neplatné, neměli byste je jednoduše zobrazit. Tím se sníží možnost, že se uživateli zobrazí chyba.

Pokud se jedná o webovou aplikaci, použijte JavaScript k odstranění neplatných voleb v závislosti na výběru. Po použití prvního rozbalovacího seznamu postupně odhalte druhé rozbalovací menu s příslušnými možnostmi. Ditto pro třetí. Ověření na straně serveru a pouze v případě, že se po ověření na straně serveru neověřuje, měli byste zobrazit chybu. Chyba se zobrazí pouze těm, kteří mají zakázaný JavaScript nebo těm, kteří se záměrně snaží obejít váš formulář.

Pokud se jedná o aplikaci pro stolní počítače, použijte stejný typ principu.

1
Virtuosi Media