JQuery将事件设置为复选框选中/取消选中

时间:2011-02-11 19:06:49

标签: jquery html

<input type="checkbox" name="Rates">Rates<br />
<input type="checkbox" name="RatesSpecific">Rates (All-In-Rate, PV01)<br />

这些需要保留复选框(因为不仅仅是这2个)。但是,如何将JQuery事件设置为一次仅检查其中一个事件,并在检查另一个事件时将另一个事件变为灰色?

3 个答案:

答案 0 :(得分:3)

这使得checkbox元素就像一个单选按钮,但它们需要是兄弟元素。

$("input[type=checkbox]").change(function(){
   if($(this).prop('checked')){
     $(this).siblings("input[type=checkbox]").prop('checked', false);
   }
});

也许您应该考虑使用单选按钮?

答案 1 :(得分:1)

为他们提供ID属性,然后使用


$(function() {
  $("#rates").change(function() {
    updateCheckBoxes();
  });

  $("#ratesSpecific").change(function() {
    updateCheckBoxes();
  });
});

function updateCheckBoxes() {
  if ($("#rates").val()) {
    $("#ratesSpecific").attr("disabled", "disabled");
  } else {
    $("#ratesSpecific").removeAttr("disabled");
  }

  if ($("#ratesSpecific").val()) {
    $("#rates").attr("disabled", "disabled");
  } else {
    $("#rates").removeAttr("disabled");
  }
}

答案 2 :(得分:0)

查看这个小提琴页面:http://jsfiddle.net/h682v/1/

我在那里放了几个例子,包括基于另一个的状态禁用一个。

请注意,一个部分会根据其他部分取消选中(任务取消选中会禁用底部复选框并取消选中一个),而另一个部分只会禁用。检查所有顶部(*任务),然后底部两个是活动的。

在这一个:http://jsfiddle.net/h682v/2/中,它也取消选中最后一个并在取消选中任何前一个时禁用它。

编辑:请注意,如果您添加更多复选框,我会这样做,他们会得到正确处理 - 希望这会有所帮助,因为你说你也有“其他”复选框。