【问题标题】:Horizontally and vertically exclusive radio button水平和垂直独占单选按钮
【发布时间】:2010-10-14 09:35:11
【问题描述】:

多年来一直使用这个网站,从来没有问过我自己的问题......提前欢呼。

我有一组要列出的“问题”。然后,用户必须将这些问题排名为第 1、第 2 和第 3(不过,问题可能不止三个)。

我遇到的问题是,如果我让单选按钮在一个方向上互斥 - 用户可以将所有问题排名为 #2,但是如果我让它们在另一个方向上互斥,用户可以排名相同问题为 #1、#2 和 #3。

有没有办法(可能使用 jquery/Jscript)使单选按钮在两个方向上互斥?

示例:

<table>
<tr>
    <th>Question</th><th>Rank #1</th><th>Rank #2</th><th>Rank #3</th>
</tr><tr>
    <td>QUESTION 1</td>
    <td><input type="radio" name="rank1" value="1" id="1_1" /></td>
    <td><input type="radio" name="rank2" value="1" id="1_2" /></td>
    <td><input type="radio" name="rank3" value="1" id="1_3" /></td>
</tr><tr>
    <td>QUESTION 2</td>
    <td><input type="radio" name="rank1" value="3" id="3_1" /></td>
    <td><input type="radio" name="rank2" value="3" id="3_2" /></td>
    <td><input type="radio" name="rank3" value="3" id="3_3" /></td>
</tr>

在上面的示例中,值是问题的 ID(来自数据库)

【问题讨论】:

  • ID 不能以数字开头。如果你正在这样做,你应该改变它。

标签: javascript jquery html radio-button


【解决方案1】:

创意解决方案:

为什么不使用小部件? 您可以提出诸如可以拖动和移动的图层之类的问题,例如:

http://jqueryui.com/demos/sortable/

http://jqueryui.com/demos/draggable/#sortable

第一个出现的就是第一个。

【讨论】:

  • 我没想到。唯一的问题是该网站的职责之一是将此类用户交互保持在最低限度,因为用户可能会相当年长(不是一个笼统的概括,但该网站面向的是老年用户不懂电脑的人)。
  • ^^^ 为这一点欢呼,记住... 既然您已经说过,重新考虑数据的表示可能是个好主意。也许使用触发回发并重新排列问题(或类似问题)的按钮。谢谢
  • +1 用于拖放。如果你做对了,如果你把它展示出来,通过动画 gif 作为教程之类的东西,老年人应该不会有太多的麻烦。
  • 不确定。我正在开发的网站部分面向庇护所和疗养院的人们。虽然我并不是说这个类别中的所有人都不会对这种互动做出很好的反应 - 很大一部分人会被它推迟。
【解决方案2】:

你必须使用 jQuery 来获得这个效果,因为我看不到它在 HTML 中开箱即用的方法。 Here is an example 给出了想要的效果:

$(document).ready(function() {
    $(':radio').click(function() {
        $(this).parent().siblings().children(':radio').attr('checked', false);
    });
});

【讨论】:

  • 谢谢。我认为当它全部投入生产时,可能需要更仔细地查看 UI,但这正是我所寻找的。另外...该网站已被添加书签:)
  • 我看到 jsfiddle 被越来越多地使用,几乎和 SO 本身一样方便
猜你喜欢
  • 2016-08-15
  • 1970-01-01
  • 1970-01-01
  • 2020-08-18
  • 2011-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-08
相关资源
最近更新 更多