0

我知道复选框和单选按钮是两种不同类型的数据输入,并且想要使用其中一种来执行另一种操作有点像给猫装扮成狗——但是方式我希望这些复选框能够操作,没有其他方法(我稍后会向您展示)。

我创建了一个数据输入页面,工作人员可以在其中将特定的班级资格分配给指定年级组内的班级。这些资格的工作方式非常简单:多个资格可以分配给任何班级,除了一个:同一班级不可能同时拥有资格 EnAQA4700 和 EnAQA4705。

因此,一个班级最多可以同时拥有四个资格(复选框,简单),4700 和 4705 是个例外;可以是 4700,可以是 4705,两者都不能,但不能两者都(单选按钮!)

前两个复选框(用于 EnAQA4700 和 EnAQA4705)是否可以被视为单选按钮,但仍然可以与其他复选框一起写入数据库?

非常感谢!

在此处输入图像描述

编辑

这是表格第一行的 HTML 代码。您将看到类名包含一个 PHP 数组变量,并且在我之前关于复选框识别使用数组写入哪个类的问题中,我被告知相应地命名复选框。

<tr>
<td height="30"><?php echo $cl[0] ?></td>
<td height="30"><input type="checkbox" name="Classes[<?php echo $cl[0]; ?>][]" id="checkbox"></td>
<td height="30"><input type="checkbox" name="Classes[<?php echo $cl[0]; ?>][]" id="checkbox2"></td>
<td height="30"><input type="checkbox" name="Classes[<?php echo $cl[0]; ?>][]" id="checkbox3"></td>
<td height="30"><input type="checkbox" name="Classes[<?php echo $cl[0]; ?>][]" id="checkbox4"></td>
<td height="30"><input type="checkbox" name="Classes[<?php echo $cl[0]; ?>][]" id="checkbox5"></td>
</tr>
4

1 回答 1

1

我认为将其与 HTML 结构尽可能分开的最简单方法是incompatible在每行中的复选框中添加一个类,例如时间)。然后你的 jQuery 看起来像这样:

$(document).ready(function() {
    $('.incompatible').on('change', function (e) {
        if($(this).closest('tr').find('.incompatible:checked').not(this).length > 0)
            this.checked = false;
    });
});

本质上,当您(尝试)更改其中一个复选框的选中状态时,它会查看该<tr>元素中的其他复选框,以查看是否有任何既具有该类又被选中的复选框。如果其中至少有一个,它会将checked已更改复选框的属性设置为false

jsFiddle 演示

于 2013-10-17T09:12:31.350 回答