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?
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:
Pokoknya, dialog harus memiliki kotak centang "ingat pilihan", jadi lain kali tidak akan mengganggu pengguna.
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 :)
Melihat ini berkali-kali, dan sementara hal yang jelas adalah untuk 'melarang' kombinasi yang tidak valid, ia memiliki beberapa kelemahan:
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.
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.