我想要一个 jquery 函数,当单击任何复选框时将激活该函数,并且根据单击的复选框的值字段,它将禁用或启用其他复选框。
到目前为止,我有:
$(function () {
$('input [type="checkbox"]').click(function () {
});
});
好的,所以我已经取得了一些进展.. 但它仍然无法正常工作。
<script type="text/javascript">
$(function () {
$(':checkbox').click(function () {
$value = $(this).attr('value');
if ($(this).is(':checked'))
{
switch ($value)
{
case "BLIPA":
$(':checkbox[value*="B"]').attr('disabled', true);
}
}
else
{
$(':checkbox').each(function()
{
}
}
});
});
我犯过什么错误吗?
编辑:
好的,我已经解决了。这是解决方案:
<script type="text/javascript">
$(function () {
$("input[type='checkbox']").click(function () {
var value = $(this).attr('value');
if ($(this).is(':checked')) {
var modules = FindModuleRules(value);
$(':checkbox[value*="' + modules[0] + '"]').attr('disabled', true);
$(':checkbox[value*="' + modules[1] + '"]').attr('disabled', true);
$(':checkbox[value*="' + modules[2] + '"]').attr('disabled', true);
$(':checkbox[value~="' + value + '"]').attr('disabled', false);
}
else {
var modules = FindModuleRules(value);
$(':checkbox[value*="' + modules[0] + '"]').attr('disabled', false);
$(':checkbox[value*="' + modules[1] + '"]').attr('disabled', false);
$(':checkbox[value*="' + modules[2] + '"]').attr('disabled', false);
}
});
function FindModuleRules(string) {
var modules = new Array();
var bRegex = /B/;
var lRegex = /L/;
var aRegex = /A/;
if (string.search(bRegex) != -1)
modules[0] = "B";
else
modules[0] = "X";
if (string.search(lRegex) != -1)
modules[1] = "L";
else
modules[1] = "X";
if (string.search(aRegex) != -1)
modules[2] = "A";
else
modules[2] = "X";
return modules;
}
});