使用jquery限制复选框,基于选中的单选按钮

时间:2012-06-02 20:25:42

标签: jquery checkbox radio

所以,我有一些复选框的问题。首先让我告诉你关于“项目”本身。这是一个webform,用户必须完成它并检查一些复选框和单选按钮,具体取决于他想要购买的内容。其中第一个是2个无线电子弹,编号为1和2,代表他想要购买的产品数量。接下来是大约5个代表产品颜色的复选框,它们有多少无关紧要,事情就是......我想,当用户在单选按钮上选择1时,只有1个复选框是如果他选择2,则只有2个复选框可供检查。所以..有人可以帮助我吗?我想到了jQuery,但我不知道......

有两个div,第一个id为id的div让我们说#radioButtons有2个单选按钮,第二个div有其余的复选框。

4 个答案:

答案 0 :(得分:1)

你没有在你的帖子中给出任何标记,所以我想是这样的:

HTML

<div id="radioButtons">
  <input type="radio" name="quantity" id="radio1">
  <input type="radio" name="quantity" id="radio2">
</div>
<div class="checkBoxes">
  Color 1:<input type="checkbox" name="color" disabled="disabled">
  Color 2:<input type="checkbox" name="color" disabled="disabled">
  Color 3:<input type="checkbox" name="color" disabled="disabled">
  Color 4:<input type="checkbox" name="color" disabled="disabled">
  Color 5:<input type="checkbox" name="color" disabled="disabled">
</div>

的jQuery

$('#radio1').on('change', function() {
    $('.checkBoxes :checkbox').prop('disabled', true);
    $(':checkbox:eq(0)').prop('disabled', false);
});

$('#radio2').on('change', function() {
    $('.checkBoxes :checkbox').prop('disabled', true);
    $(':checkbox:eq(0), :checkbox:eq(1)').prop('disabled', false);
});

<强> Sample workout

答案 1 :(得分:1)

我们可能会使用真正的 HTML源代码来解决问题。

修改

我无法理解你为什么要这样做。从可用性的角度来看,这个解决方案很不寻常,可能有点糟糕。让我问你几个问题。

  • 你为什么要这样工作?
  • 您想让您的用户选择什么?

有许多内联选择的可能性,着名的例子是在apple.com上选择iPad类型。但最重要的是为用户提供易于理解且使用感觉良好的用户界面。

答案 2 :(得分:0)

您可以向复选框添加点击事件,然后在事件处理程序中检查允许的最大复选框的条件,然后根据是否已达到该限制返回true或false。

答案 3 :(得分:0)

请参阅Sample

我维护要在收音机的ID中创建的复选框的数量,并动态创建div中的复选框。

修改

我更新你给的小提琴。请看一下Update Fiddle