假设选中check
disable
复选框并反转另一个框中的check
disable
。似乎工作,直到我在以前更改的复选框上再次尝试它。大脑今天炒了。非常感谢任何见解或更好的代码。
$('.changeCheck').change(function(event) {
var oldTarget = $(':checked').attr('id');
console.log(oldTarget);
$(this).attr('disabled', 'disabled').attr('checked', 'checked');
$('#'+oldTarget).removeAttr('checked', 'checked').removeAttr('disabled', 'disabled');
});
答案 0 :(得分:3)
目前您只定位第二个输入,您还需要在第一次输入时定位change
事件。您应该使用prop()代替attr()
:
$('.changeCheck, #check1').change(function(event) {
$(this).prop("disabled", true).siblings().prop("disabled", false).prop('checked', false);
});
<强> Updated Fiddle 强>
答案 1 :(得分:2)
试试这个:
$('.changeCheck').change(function (event) {
$('.changeCheck').prop({
'checked': false,
'disabled': false
});
$(this).prop({
'checked': true,
'disabled': true
});
});
<强> jsFiddle example 强>
您不想使用.removeAttr()
或.attr()
,而是使用.prop()
。并且单选按钮不是更好的选择吗?
答案 2 :(得分:0)
.attr()
仅更改默认属性,不会更改“live”属性(从jQuery 1.6开始)。您需要改为使用.prop()
方法。