it-swarm-vi.tech

Làm thế nào để xử lý các lựa chọn thả xuống liên quan đến nhau?

Tôi đã có một biểu mẫu chứa (trong số những thứ khác) 3 lần thả xuống, mỗi lần có khoảng 5-10 lựa chọn. Các lựa chọn trong các danh sách thả xuống này có liên quan chặt chẽ và một số hoán vị sẽ không hợp lệ. Điều này cũng có nghĩa là nếu người dùng thay đổi lựa chọn trong một trong các danh sách thả xuống thì các giá trị hiện tại trong hai giá trị kia có thể không hợp lệ.

Tài liệu thiết kế của tôi hiện nói rằng "nếu kết hợp không hợp lệ được chọn thì sẽ hiển thị lỗi" và "để giúp người dùng chọn các kết hợp hợp lệ trong tất cả các lựa chọn trong danh sách thả xuống sẽ tạo ra kết hợp không hợp lệ trong phần thả xuống ".

Tôi không khẳng định rằng đây là cách tốt nhất để giải quyết vấn đề này nhưng tôi không thể nghĩ ra bất kỳ giải pháp thay thế nào tốt hơn. Tôi đã nghĩ về việc kết hợp chúng thành một danh sách thả xuống có chứa tất cả các kết hợp hợp lệ nhưng điều này cũng có thể khó sử dụng.

Có ai có giải pháp nào khác không?

8
IanR

Nếu bạn có thể xác định đơn hàng giữa các lần thả xuống, giải pháp tương đối dễ dàng:

Mỗi lựa chọn thả xuống đặt lại các lựa chọn trong các menu thả xuống (xuôi dòng) sau. Nó cũng cập nhật các trường có sẵn để phù hợp với lựa chọn hiện tại trong danh sách thả xuống đó (hoàn toàn không hiển thị các tùy chọn không được phép).

Ví dụ, hãy xem xét các trang web bản đồ cũ hơn: Bạn có thể chọn một tiểu bang, sau đó là một thành phố và chỉ sau đó là một đường phố. Sẽ hoàn toàn chấp nhận được rằng nếu bạn thay đổi trạng thái, bạn sẽ mất thành phố bạn đã chọn trước đó.

Nếu có không có thứ tự riêng biệt bạn có thể:

  • Không cho phép chọn các giá trị mới xung đột với (các) lựa chọn hiện có.
    [.___.

  • "Ánh sáng yếu" (như bạn nói) những giá trị mới có vấn đề như vậy, nhưng cho phép người dùng chọn chúng.
    [.___.] Sau đó, bạn có thể hiển thị hộp thoại, giải thích giá trị mới có vấn đề.
    [.__.] Người dùng có thể chọn:

    • Loại bỏ cảnh báo và ghi đè - nghĩa là tùy chọn mới được chọn và đặt lại các giá trị xung đột được chọn trước đó trong các danh sách thả xuống khác.
    • Chú ý cảnh báo (đóng hộp thoại) và chọn giá trị khác.
      [.__.].

    Dù sao, hộp thoại phải có hộp kiểm "nhớ lựa chọn", vì vậy lần sau nó sẽ không gây lỗi cho người dùng.

7
Dan Barak

Mặc dù tôi hiểu rằng có thể có vấn đề thiếu không gian dọc, nhưng tôi chắc chắn sẽ thử không sử dụng thả xuống, tôi sẽ thử sử dụng các thành phần loại danh sách thay thế (chọn nhiều nhóm hoặc nhóm đầu vào radio ) - điều này cho phép người dùng thấy những thay đổi xảy ra trong khi chọn một cái gì đó trong một nhóm có ảnh hưởng đến các tùy chọn trong các nhóm khác.

Ngoài ra - tôi ít nhất sẽ cố gắng a) cung cấp lối tắt cho hầu hết các bộ lựa chọn phổ biến b) cố gắng thiết kế lại toàn bộ. Giao diện này không thể được gọi là "đơn giản", tuy nhiên bạn có thể thực hiện trơn tru :)

2
Jüri

Đã thấy điều này nhiều lần và trong khi điều rõ ràng là 'không cho phép' các kết hợp không hợp lệ thì nó có một số nhược điểm:

  1. Có thể khó chuyển sang kết hợp hợp lệ vì các bước trung gian đều 'không được phép'. ví dụ. nếu bạn có các lựa chọn A/B và C/D và A chỉ được phép với C và B với D, thì người dùng không thể chuyển từ A + C sang B + D vì không thả xuống sẽ chuyển sang lựa chọn khác. Đây có thể là một vấn đề đặc biệt với hệ thống phức tạp hơn và nếu người dùng không quen thuộc với những kết hợp nào có thể không được phép; tìm các bước trung gian pháp lý có thể làm sôi lên thử nghiệm và lỗi.
  2. Lý do đằng sau việc không được phép có thể tối nghĩa và bạn muốn thông báo cho người dùng về lý do lựa chọn của họ không hợp lệ.

Những gì tôi sẽ đề xuất là không cho phép các lựa chọn không hợp lệ. Thông số kỹ thuật của bạn không nói rằng họ không được phép; lowlighting không giống nhau. Làm cho các lựa chọn bất hợp pháp khác biệt với các lựa chọn hợp pháp, bằng cách nhấn mạnh, nhưng cho phép chúng được chọn. Kết hợp điều này với một vùng thông báo hiển thị khi kết hợp bất hợp pháp được chọn, đưa ra lý do và đề xuất một giải pháp thay thế (và không cho phép người dùng tiến hành bước tiếp theo).

Tất cả điều này là vô hiệu nếu các lựa chọn có thể được chia thành một chuỗi: sau đó sẽ có ý nghĩa hơn nhiều khi trình bày các lựa chọn theo trình tự và không cho phép bất kỳ lựa chọn bất hợp pháp nào khi mỗi lựa chọn được trình bày.

2
DJClayworth

Nếu một số lựa chọn không hợp lệ, bạn chỉ không nên hiển thị chúng. Điều này sẽ làm giảm khả năng lỗi được hiển thị cho người dùng.

Nếu đây là một ứng dụng web, hãy sử dụng JavaScript để loại bỏ các lựa chọn không hợp lệ tùy thuộc vào lựa chọn. Dần dần tiết lộ danh sách thả xuống thứ hai với các tùy chọn phù hợp sau khi thả xuống đầu tiên đã được sử dụng. Ditto cho thứ ba. Xác thực phía máy chủ và chỉ khi nó không xác thực sau khi xác thực phía máy chủ của bạn thì bạn mới hiển thị lỗi. Chỉ những người có JavaScript bị vô hiệu hóa hoặc những người cố tình bỏ qua biểu mẫu của bạn mới thấy lỗi.

Nếu đó là cho một ứng dụng máy tính để bàn, hãy sử dụng cùng một loại nguyên tắc.

1
Virtuosi Media