【发布时间】:2010-01-04 21:50:33
【问题描述】:
我希望有一组单选按钮在单击复选框之前处于非活动状态。
换句话说,当用户选中一个复选框时,它将允许用户使用单选按钮。如果用户取消选中一个复选框,它将使单选按钮处于非活动状态,因此用户无法再选择它们。
是否有使用 jQuery 的解决方案可以用来实现此目的?
【问题讨论】:
标签: javascript jquery checkbox radio-button
我希望有一组单选按钮在单击复选框之前处于非活动状态。
换句话说,当用户选中一个复选框时,它将允许用户使用单选按钮。如果用户取消选中一个复选框,它将使单选按钮处于非活动状态,因此用户无法再选择它们。
是否有使用 jQuery 的解决方案可以用来实现此目的?
【问题讨论】:
标签: javascript jquery checkbox radio-button
假设单选按钮具有相同的名称,那么您可以为此使用attribute selector:
$('#checkboxid').click(function() {
$('input[name="radiobuttonname"]').attr('disabled', !this.checked);
});
这将在复选框被选中时启用单选按钮,在未选中时禁用。
【讨论】:
this 指的是触发click 事件的元素,因此是复选框本身。如果选中该复选框,this.checked 将返回布尔值 true。另见wwd.w3schools.com/jsref/dom_obj_checkbox.asp。 ! 只是将布尔值反转,因此例如 true 变为 false。您可以在 jQuery 中借助 CSS 和 toggleClass() 设置文本样式。另请参阅docs.jquery.com/Attributes/toggleClass 假设这些文本由<label> 呈现,您可以通过循环单选按钮并使用$('label[for="' + this.id + '"]') 来获取它们。