如果选择了另一个,则取消选择单选按钮

考虑以下标记:

我想要做的是每当选择另一个时,如果每个.project组中的单选按钮都禁用一个(因此只能Second choice每个组中的First choiceSecond choice )。 我知道怎么做是在一个特定情况下禁用一个特定的单选按钮,但我不知道如何概括它,因为它们可能是一百个这样的.project组。

编辑 :请注意,只能First choice整个First choice (反之亦然)。 该名称已经使用了相同的名称。 在整个标记中使用相同的name属性。 只有两个不同的name

只需给它们相同的name但不同的value ; 这将自动发生,因为这是单选按钮的设计方式。

您必须在所有单选按钮上收听更改事件。 当其中任何一个发生变化时,您将检查它是否被检查。 如果是,那么您将取消选中该.project所有其他单选按钮:

 $('input[type=radio]').change(function() { if (this.checked) { $(this).closest('.project') .find('input[type=radio]').not(this) .prop('checked', false); } }); 

如果您为一组单选按钮指定相同的name ,则只要您单击它们,它们就会自动检查/取消选中。 但是对于每个没有标记的单选按钮,ID应该是唯一的。 看看这个工作演示,我希望这是你正在寻找的。

工作演示

您只需对组中的所有按钮使用相同的名称。 然后浏览器自动禁用。

  $(function(){ if($(this).attr('checked')==true) { $('.project').not(this).attr('checked',false); } }); 
  

您只需对组中的所有按钮使用相同的名称。 然后浏览器自动禁用。

如果你愿意,你可以改变不同值的id