JSFiddle:http://jsfiddle.net/dvF5d/2/
<input type="radio" id="rad1" name="rad"/><label for="rad1">rad1</label><br/>
<input type="checkbox" id="chk1"/><label for="chk1">chk1</label><br/>
<input type="radio" id="rad2" name="rad"/><label for="rad2">rad2</label>
$(document).ready(function(){
var rad1 = $('#rad1');
var chk1 = $('#chk1');
var a = function(){
if(!rad1.is(':checked'))
{
chk1.attr('disabled', true);
}
console.log('rad checked', rad1.is(':checked'));
};
rad1.blur(function(){
console.log('blur');
a();
});
rad1.change(function(){
console.log('change');
a();
});
});
当rad1模糊时,即使选择了rad2,rad1也会被检查属性始终为true。有没有什么办法解决这一问题? (或者更好的是,某种jquery插件可以启用/禁用基于其他控件的控件)。
答案 0 :(得分:1)
就单选按钮而言,没有blur
这样的东西,唯一会导致取消选中单选按钮的情况是检查另一个。因此,请将blur
更改为:
$("input[type='radio']:not(#rad1)").change(function(){
//rad1 isn't checked
});
答案 1 :(得分:0)
根据电台选择切换复选框:
jQuery(function(){
var $rad1 = $('#rad1');
var $checkbox = $('#chk1');
$('input[type="radio"]').click(function(){
$checkbox.prop('disabled', !$rad1.is(':checked'));
});
});
答案 2 :(得分:0)
我知道你已经选择了答案,但是根据你的评论,“当选择rad1时,应该启用chk1。当选择rad2时,应该禁用chk1。”以下是你所说的:
$('input[name="rad"]').change(function(){
$('#chk1').attr('disabled',$('#rad2').is(':checked'));
});
<强> jsFiddle example 强>