Javascript jQuery:如何仅禁用复选框

Javascript jQuery:如何仅禁用复选框,javascript,jquery,checkbox,disable,Javascript,Jquery,Checkbox,Disable,我使用下面的代码,我在一个网站上找到的,它的工作非常完美 我有一个25个问题的测验,由单选按钮和复选框组成 如果在同一页上,我有两个单选按钮和复选框,则会出现问题。下面的代码计算这两个,但我只希望它计算勾选的复选框 目前,一旦我点击最大答案,我就无法回答剩余的单选按钮问题;反之亦然,复选框前的单选按钮将计入最大答案数 该代码还禁用了单选按钮和复选框,因此我想找到一种方法使其仅禁用复选框 我可以将代码拆分成更多的div,但这将变得非常复杂,因为我的jQuery使用div控制测验的流程: $(文

我使用下面的代码,我在一个网站上找到的,它的工作非常完美

我有一个25个问题的测验,由单选按钮和复选框组成

如果在同一页上,我有两个单选按钮和复选框,则会出现问题。下面的代码计算这两个,但我只希望它计算勾选的复选框

  • 目前,一旦我点击最大答案,我就无法回答剩余的单选按钮问题;反之亦然,复选框前的单选按钮将计入最大答案数
  • 该代码还禁用了单选按钮和复选框,因此我想找到一种方法使其仅禁用复选框
我可以将代码拆分成更多的div,但这将变得非常复杂,因为我的jQuery使用div控制测验的流程:

$(文档).ready(函数(){
$(“输入[类型=复选框]”)。单击(函数(e){
if($(e.currentTarget).closest(“div.question”).length>0){
禁用输入($(e.currentTarget).closest(“div.question”)[0]);
}
});
});
功能禁用输入(问题元素){
console.log(questionElement);
if($(questionElement).data('max-answers')==未定义){
返回true;
}否则{
maxAnswers=parseInt($(questionElement).data('max-answers'),10);
if($(questionElement).find(“:checked”).length>=maxAnswers){
$(questionElement).find(“:not(:checked)”).attr(“disabled”,true);
}否则{
$(questionElement).find(“输入[类型=复选框]”).attr(“禁用”,false);
}
}
}
以下是主要测验的一个片段:


访问控制问题
可以共享门禁代码吗?




从下面的列表中选择访问控制系统的目标(最多3个)
确保只有授权用户才能访问我们的系统

保护对我们办公室的物理访问

允许您访问其他用户的密码

为了确保用户能够访问系统,他们也需要访问


一个客户正在访问并要求使用您的计算机,您应该怎么做?
让他们使用你的电脑,因为他们是客户,所以可以随心所欲
礼貌地说你不允许这样做,并将他们介绍给他们来拜访的经理
假装在打电话,希望他们走开

我认为
:未(:选中)
同时返回单选按钮和复选框。您可以尝试通过添加
input[type=checkbox]
使选择器更具体,请参见以下内容:

if($(questionElement).find(“输入[类型=复选框]:选中”).length>=maxAnswers)
…并在禁用复选框时执行相同操作:

$(questionElement).find(“输入[类型=复选框]:未(:选中)”).attr(“已禁用”,true);

谢谢福图因,这就成功了。非常感谢,太棒了!请您把答案标记为已接受,好吗?未来的游客可能会从中受益