这适用于一组3个单选按钮:
$("input:radio").click(function() {
$(this).siblings("input:radio").attr("disabled","disabled");
});
更进一步......我有3组3个单选按钮:
1 2 3
1 2 3
1 2 3
如果用户在第一行检查数字1,我希望它在第二行和第三行禁用数字1 ...基本上我给每个用户3个选择,我希望他们对它们进行排名并希望所有排名与众不同。有意义吗?
这可能吗?
答案 0 :(得分:1)
这将匹配页面上所有其他单选按钮,其值与您选择的相同,并禁用它们,同时禁用当前组中的其他按钮。
$("input:radio").click(function() {
var val = $(this).val();
$(this).siblings("input:radio").attr("disabled","disabled");
$("input:radio[value='" + val + "']").not(this).attr("disabled","disabled");
});
就像菲利克斯所说的那样,这样做会使你在选择所有选项后无法改变你的选择。所以我建议你有一个重置按钮。
这是一个jsfiddle示例:http://jsfiddle.net/X6zKa/
答案 1 :(得分:1)
您需要一种简单的方法来选择其他单选按钮。从您的描述中可以看出,具有相同标签的所有单选按钮的值也具有相同的值,因此您可以选择该值。
将div中的单选按钮分组为共享类:
<div class="rating">
<input type="radio" name="group1" value="1" />1
<!-- more radio buttons -->
</div>
<div class="rating">
<input type="radio" name="group2" value="1" />1
<!-- more radio buttons -->
</div>
<!-- more radio button groups -->
您现在可以选择其他单选按钮组并禁用所有具有相同值的单选按钮:
$("input:radio").click(function() {
var $this = $(this);
var value = $this.val();
$this.closest('.rating') # Parent div
.siblings('.rating') # All the sibling divs, not this group
.find('input:radio[value="' + value + '"]') # All radio buttons with the same value
.attr("disabled","disabled");
});
或者,您可以使用not
过滤器从组中删除当前输入选择器:
$("input:radio").click(function() {
var $this = $(this);
var value = $this.val();
$('input:radio[value="' + value + '"]') # All radio buttons with the same value
.not(this) # Explicitly remove the current radio button
.attr("disabled","disabled");
});
答案 2 :(得分:1)
我在CSS-Tricks网站上看到了你所寻找的一个例子,非常好。 请点击此链接Radio Buttons with 2way Exclusivity