【问题标题】:Choice in order of priority in forms (ordering 5 choices in order of priority)表格中按优先顺序选择(按优先顺序排列5个选项)
【发布时间】:2009-02-18 02:00:15
【问题描述】:

我正在尝试为我的 php/mysql 应用程序创建一个表单。我希望我的用户列出他们选择的优先级,他们有 5 个选项,他们必须按偏好顺序选择每个选项

【问题讨论】:

    标签: php html forms


    【解决方案1】:

    为什么不简单地为每个选项提供五个插槽(一个在另一个下),并在每个选项的右侧提供一个更高/更低的控件来更改顺序?这总是比分配一个乱序的序列号更有吸引力。

    例如,以:

    开头
    Favorite Friends:
        1 Pax             ^   v
        2 Litb            ^   v
        3 Jon Skeet       ^   v
        4 VonC            ^   v
        5 Jeff Atwood     ^   v
    

    然后,如果您想将 Jon 提升到第 2 位,只需单击他名字旁边的“^”一次。

    Favorite Friends:
        1 Pax             ^   v
        2 Jon Skeet       ^   v
        3 Litb            ^   v
        4 VonC            ^   v
        5 Jeff Atwood     ^   v
    

    如果出于某种原因,您认为我冤枉了您(我真的很抱歉 :-),请点击我的“v”字符四次,您最终会得到:

    Favorite Friends:
        1 Jon Skeet       ^   v
        2 Litb            ^   v
        3 VonC            ^   v
        4 Jeff Atwood     ^   v
        5 Pax             ^   v
    

    这个可变位置/固定数字(IMNSHO)比固定位置/可变数字解决方案好得多,因此:

    Favorite Friends:
        5 Pax
        2 Litb
        1 Jon Skeet
        3 VonC
        4 Jeff Atwood
    

    【讨论】:

    • 问题是:如果您将乱序选择作为禁用 Javascript 的客户的后备方案,让他们在每次将某人向上或向下移动一个等级时重新加载页面,或者只是离开noscript 小子想想他们做错了什么?
    • 你应该总是有一个非 JS 的后备位置,如果只是为了可访问性目的(许多国家的平等法规定)。但我会让它看起来尽可能相似(即页面重新加载) - 乱序仍然看起来很难看。
    【解决方案2】:

    我会在每个字段旁边放置一个文本输入,并附有说明控件如何工作的简短说明。对于禁用 JavaScript 的客户端,您可以简单地验证每个输入是否包含从 1 到 5 的唯一整数。

    对于支持 JavaScript 的客户端,jQuery UI library 为您服务。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-21
      • 2018-09-04
      • 2012-07-28
      相关资源
      最近更新 更多