【问题标题】:Rails: two radio selects on same source listRails:同一源列表上的两个收音机选择
【发布时间】:2012-03-13 03:32:54
【问题描述】:

想知道如何解决这个问题...最好查看图片以可视化用于在列表中选择选项的表单的充满希望的 UI。用户需要能够为每个选项做出第一选择第二选择。每一列和每一行都可以选择一个,并且只能选择一个。

起初我想,当然,2 个单选按钮组可能会起作用……但不确定如何?也许隐藏了radio_buttons,其values 是通过Javascript/JQuery 在每个div 上的click 事件中操作的?当用户尝试为两个选项选择相同的选项时,事件还应检查/处理“碰撞”。

或者,如果有两个隐藏的collection_selects 会更好...或者更简单,只有两个隐藏的 text_fields...哪个 javascript 可以填充所选选项的 ID?

或者我忽略了一些更明显的东西。

我是使用 Rails 编写 javascript 的新手,所以寻求建议/验证。

谢谢。

【问题讨论】:

  • 可以同时选择“选项 B”吗?
  • 没有。您应该只能在每一列每一行中选中一个框。
  • 在这种情况下,当从 [row1 x col1] 中选择了一个框并且下一个选择用户尝试选择 [row1x col2] 时会发生什么。会重置之前的选择吗?

标签: javascript jquery ruby-on-rails forms radio-button


【解决方案1】:

我认为您正在寻找这样的东西:

HTML:

<form>
    <p class="exclusiveSelection">
        Selection One
        <input type="radio" name="firstColumn"/>
        <input type="radio" name="secondColumn"/>
    </p>
    <p class="exclusiveSelection">
        Selection Two
        <input type="radio" name="firstColumn"/>
        <input type="radio" name="secondColumn"/>
    </p>
    <p class="exclusiveSelection">
        Selection Three
        <input type="radio" name="firstColumn"/>
        <input type="radio" name="secondColumn"/>
    </p>
    <input type="button" id="submitForm" value="Submit">
</form>

JavaScript:

$(function() {
    $(".exclusiveSelection input[type='radio']").click(function() {
        $exclusiveSelection = $(this).parent();
        $('input[type='radio']', $exclusiveSelection).attr('checked', false);
        $(this).attr('checked', true);
    });
});

它确保值在列和行之间是唯一的,并且适用于 jQuery 1.2.6 - 1.7.1。还有一个JSFiddle example

如果您在为 Rails 调整此内容时需要帮助,请告诉我,但应该是直截了当的。

【讨论】:

  • 非常很有帮助...谢谢!该功能正是我正在寻找的!现在,不确定您是否也可以提供帮助,但我想自己更改实际的单选按钮,使它们看起来“更好”,也许是可点击的 div?!? (他们也应该使用触摸 UI - 尽管这可能是单独的 CSS)。有什么想法吗?
猜你喜欢
  • 2012-07-26
  • 2016-12-13
  • 1970-01-01
  • 1970-01-01
  • 2014-05-04
  • 2012-11-04
  • 2016-10-25
  • 2022-12-04
  • 1970-01-01
相关资源
最近更新 更多