2012-04-27 130 views

回答

2

没有看到你的HTML,我假设一个简单的例子。下面是一些短期的jQuery做你问什么:

$('input[type="radio"]').click(function() { 
    $('input.newsletter').attr({ 
     'checked': $(this).val() == 16, 
     'disabled': $(this).val() == 16 
    }); 
});​ 

jsFiddle example

+0

辉煌,+1,因为它非常通用 – 11684 2012-04-27 15:19:37

+0

非常好...有什么方法可以修改它,所以如果选择了17个单选按钮,它不会取消选中复选框? – 2012-04-27 16:01:17

+0

您可以将checked属性从上面更改为“checked”:$(this).val()== 16 || $( 'input.newsletter')。ATTR( '检查')!=未定义,'。 http://jsfiddle.net/j08691/8J5y9/2/ – j08691 2012-04-27 16:07:07

0
$("input[type=radio][name=<your radio button set name here>]").changed(function() { 
    if ($("input[type=radio][name=<your radio button set name here>]").val() == "16") { 
     $("input[type=checkbox].newsletter").attr('checked', 'checked'); 
     $("input[type=checkbox].newsletter").attr('disabled', 'disabled'); //this is one way to make it not unselectable 
    } 
    else { 
     $("input[type=checkbox].newsletter").removeAttr('disabled'); 
    } 
} 

另一种方法,使之不能成为未选择的是2号线的地方在上文(带有注释旁边)的ifstayChecked = true;和到位的$(...).removeAttr('disabled');stayChecked = false; 。然后,让类似下面的另一个功能:

$("input[type=checkbox].newsletter").changed(function() { 
    if (stayChecked) { 
     $(this).attr('checked', 'checked'); 
    } 
}); 

注意:您应该某处声明var stayChecked两种功能外一个共同的水平(即在脚本级别,或者如果他们声明里面的父函数里面,让我们说,$(document).ready()函数)。

相关问题