it-swarm.asia

Bagaimana cara menangani pilihan dropdown yang saling terkait?

Saya punya formulir yang berisi (antara lain) 3 dropdown, masing-masing dengan sekitar 5-10 pilihan. Pilihan dalam dropdown ini terkait erat dan beberapa permutasi tidak valid. Ini juga berarti bahwa jika pengguna mengubah pilihan di salah satu dropdown maka nilai saat ini di dua lainnya mungkin tidak valid.

Dokumen desain saya saat ini menyatakan bahwa "jika kombinasi yang tidak valid dipilih maka kesalahan harus ditampilkan" dan "untuk membantu pengguna untuk memilih kombinasi yang valid semua pilihan dalam daftar dropdown yang akan menghasilkan kombinasi yang tidak valid harus kurang terang di dropdown ".

Saya tidak yakin bahwa ini adalah cara terbaik untuk menghadapi ini, tetapi saya tidak bisa memikirkan alternatif yang lebih baik. Saya berpikir untuk menggabungkan mereka ke dalam satu dropdown tunggal yang berisi semua kombinasi yang valid tetapi ini bisa sangat sulit juga.

Adakah yang punya solusi lain?

8
IanR

Jika Anda bisa menentukan pesanan di antara dropdown, solusinya relatif mudah:

Setiap pilihan dropdown me-reset pilihan pada dropdown berikut (downstream). Ini juga memperbarui bidang yang tersedia agar sesuai dengan pilihan saat ini di dropdown itu (tidak menunjukkan opsi yang tidak diperbolehkan sama sekali).

Pertimbangkan misalnya situs peta lama: Anda dapat memilih negara bagian, lalu kota dan hanya jalan. Akan cukup diterima bahwa jika Anda mengubah keadaan, Anda akan kehilangan kota yang sebelumnya Anda pilih.

Jika ada tanpa urutan berbeda Anda dapat:

  • Larang memilih nilai baru yang bertentangan dengan pilihan yang ada.
    Saya menganggap Anda bisa "kurang cahaya" (seperti yang Anda katakan) opsi ini di dropdown bahkan sebelum pemilihan.

  • "Low-Light" (seperti yang Anda katakan) nilai-nilai baru yang bermasalah, tetapi memungkinkan pengguna untuk memilihnya.
    Anda kemudian dapat menampilkan kotak dialog, menjelaskan nilai baru bermasalah.
    Pengguna dapat memilih:

    • Abaikan peringatan dan ganti - yaitu opsi baru dipilih dan setel ulang nilai bentrok yang sebelumnya dipilih dalam dropdown lainnya.
    • Perhatikan peringatan (menutup dialog) dan memilih nilai lain.
      .

    Pokoknya, dialog harus memiliki kotak centang "ingat pilihan", jadi lain kali tidak akan mengganggu pengguna.

7
Dan Barak

Meskipun saya mengerti bahwa mungkin ada masalah kurangnya ruang vertikal, saya pasti akan mencoba tidak menggunakan drop-down, saya akan mencoba menggunakan elemen tipe daftar sebagai gantinya (pilih beberapa atau grup input radio ) - ini memungkinkan pengguna melihat perubahan yang terjadi saat memilih sesuatu dalam satu grup yang memengaruhi opsi di grup lain.

Juga - Saya setidaknya akan mencoba untuk a) memberikan jalan pintas ke set seleksi paling umum b) mencoba merekayasa ulang semuanya. Antarmuka ini tidak dapat disebut "sederhana", namun Anda dapat melakukannya dengan lancar :)

2
Jüri

Melihat ini berkali-kali, dan sementara hal yang jelas adalah untuk 'melarang' kombinasi yang tidak valid, ia memiliki beberapa kelemahan:

  1. Mungkin sulit untuk beralih ke kombinasi yang valid karena langkah perantara semuanya 'tidak diizinkan'. misalnya jika Anda memiliki pilihan A/B dan C/D, dan A hanya diizinkan dengan C dan B dengan D, maka pengguna tidak dapat beralih dari A + C ke B + D karena tidak ada dropdown yang akan beralih ke pilihan lain. Ini bisa menjadi masalah utama dengan sistem yang lebih rumit, dan jika pengguna tidak terbiasa dengan kombinasi apa yang mungkin dilarang; menemukan langkah-langkah perantara hukum dapat mengarah pada coba-coba.
  2. Alasan di balik pelarangan bisa tidak jelas, dan Anda ingin memberi tahu pengguna tentang alasan pilihan mereka tidak valid.

Apa yang saya usulkan adalah tidak melarang pilihan yang tidak valid. Spec Anda tidak mengatakan bahwa mereka harus dianulir; lowlighting tidak sama. Buat pilihan ilegal berbeda dari yang legal, dengan penekanan, tetapi biarkan pilihan itu dipilih. Pasangkan ini dengan area pesan yang muncul ketika kombinasi ilegal dipilih, memberikan alasan dan menyarankan alternatif (dan tidak memungkinkan pengguna untuk melanjutkan ke langkah berikutnya).

Semua ini batal dan tidak berlaku jika pilihan dapat dipecah menjadi urutan: maka jauh lebih masuk akal untuk menyajikan pilihan secara berurutan dan melarang yang ilegal ketika setiap pilihan disajikan.

2
DJClayworth

Jika beberapa pilihan tidak valid, Anda seharusnya tidak menampilkannya. Ini akan mengurangi kemungkinan kesalahan ditampilkan kepada pengguna.

Jika ini untuk aplikasi web, gunakan JavaScript untuk menghilangkan pilihan yang tidak valid tergantung pada pilihan. Secara progresif mengungkapkan dropdown kedua dengan opsi yang sesuai setelah dropdown pertama digunakan. Ditto untuk yang ketiga. Validasi sisi server dan hanya jika itu tidak divalidasi setelah validasi sisi server Anda jika Anda menampilkan kesalahan. Hanya orang-orang dengan JavaScript yang dinonaktifkan atau mereka yang dengan sengaja mencoba melewati formulir Anda yang akan melihat kesalahan.

Jika itu untuk aplikasi desktop, gunakan jenis prinsip yang sama.

1
Virtuosi Media