标题可能有点含糊。所以让我解释一下。多个单选按钮,一个选中
我有一个页面,用户可以选择他们想要预约的日期。然而,我们给他们多选择在这一天,柜面的第一选择是完全
单选按钮HTML:
<input type="radio" class="my-radio" value="monday" name="my_form[day][choice1][]"
id="monday1"/>
<label for="monday1">Monday</label>
<input type="radio" class="my-radio" value="tuesday" name="my_form[day][choice1][]"
id="tuesday1"/>
<label for="tuesday1">Tuesday</label>
<input type="radio" class="my-radio" value="wednesday" name="my_form[day][choice1][]"
id="wednesday1"/>
<label for="wednesday1">Wednesday</label>
<input type="radio" class="my-radio" value="thursday" name="my_form[day][choice1][]"
id="thursday1"/>
<label for="thursday1">Thursday</label>
<input type="radio" class="my-radio" value="friday" name="my_form[day][choice1][]"
id="friday1"/>
<label for="friday1">Friday</label>
<input type="radio" class="my-radio" value="saturday" name="my_form[day][choice1][]"
id="saturday1"/>
<label for="saturday1">Saturday</label>
这被重复另一个两次。虽然,ID已更改,名称也是如此。因此,第二天,(星期一); id = monday2,name = my_form [day] [choice2] []等等。
所以要说清楚。 3行无线电,所有相同的值,但ID和名称是不同的。
现在当星期一被选中时,哪一行无所谓,我想禁用所有其他星期一。现在如果我选择星期二,则应再次启用所有星期一。
我使用jQuery的第一部分;
jQuery('.my-radio').change(function() {
// Get all elements associated to value, but the currently selected radio.
var associates = jQuery('.my-radio[value="' + jQuery(this).val() + '"]').not("#" + jQuery(this).attr('id'));
// Disable every element that we found
jQuery(associates).each(function(){
jQuery(this).prop('disabled', true);
});
});
现在我唯一的问题是第二部分。重新启用先前禁用的无线电。
一个JSFiddle使它更清晰一点; http://jsfiddle.net/Hr9h2/1/
编辑: 非常感谢您的答案。
但是,我忘了提及你不允许选择,例如,星期一三次甚至两次。
我相信这是在OP所需的唯一答案。所有其他答案已经过于简化,破坏了OP所寻找的功能。做得很好! – Charlie74
@ Charlie74 - 这就是为什么我发布它,我已经多次创建此功能,如果我正确地理解了这个问题,循环必须在那里,以确保它在所有行中检查框等时工作。 – adeneo
Exactly我在找什么。很显然,我在想一点点努力,现在我看着它哈哈。非常感谢! –