Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 取消选中带有条件的复选框_Javascript_Jquery_Html_Checkbox - Fatal编程技术网

Javascript 取消选中带有条件的复选框

Javascript 取消选中带有条件的复选框,javascript,jquery,html,checkbox,Javascript,Jquery,Html,Checkbox,我想在一个网站上做一个调查,有一个问题和三个可能的答案 问题是我在勾选/取消勾选时遇到问题,我只想勾选一个答案,因此如果用户单击一个答案,并且他已经勾选了另一个答案,那么它只保留最后一个答案 以下是我所做的: $("input:checkbox").click(function() { if($(this).is(':checked')){ var iSurveyId = $(this).closest('div').attr('name'); var i

我想在一个网站上做一个调查,有一个问题和三个可能的答案

问题是我在勾选/取消勾选时遇到问题,我只想勾选一个答案,因此如果用户单击一个答案,并且他已经勾选了另一个答案,那么它只保留最后一个答案

以下是我所做的:

$("input:checkbox").click(function() {
    if($(this).is(':checked')){
        var iSurveyId = $(this).closest('div').attr('name');
        var iAnswerId = $(this).closest('p').attr('value');
        var bIsChecked = 'true';
如果用户单击复选框,我将获得以我的div名称表示的调查ID和以我的段落名称表示的答案ID


我使用的是jQuery 1.1.12,因此我不能使用每个函数,例如我不能使用.prop()。

您可以使用输入类型收音机而不是复选框,以便所有用户只能选择一个答案,或者像这样先清除所有复选框

$("input:checkbox").click(function() {
     $('input:checkbox').removeAttr('checked');
     $(this).attr('checked', 'checked');
}
上述操作应删除所有选择框中的选中属性,并将选中属性指定给单击的属性,或者如果您有多个问题,每个问题都有多个答案,则可以将复选框放在div中,并将代码更改为:

$("input:checkbox").click(function() {
    $('#div_id input:checkbox').removeAttr('checked');
    $(this).attr('checked', 'checked');
}
使用这个简单的代码

$(“输入:复选框”)。单击(函数(){
var thisChecked=$(this)[0]。已选中;
$(“输入:复选框”).removeAttr('checked');
如果(已选中)
$(this.attr(“选中”,true);
其他的
$(this).attr(“选中”,false);
});

项目1
项目2
项目3
项目4

使用单选按钮而不是复选框,我会这样做的,这听起来更符合逻辑,但我仍在寻找答案。这可能有助于我的理解。您的标记将定义如何定位复选框,但选中/取消选中复选框非常简单:
$(“.checkbox”).attr(“checked”,false)如果我可以问,为什么不使用新版本的jQuery?我在一个社会实习,所以我不是那种可以要求这些东西的人,但这可能意味着改变过去工作的一部分(升级过去的代码),以保持代码干净。他不能使用prop,因为他的jQuery版本。将其更改为attr。在问题中,他们说他们不能使用.prop()。您的代码正在运行,但这不会保留所选代码(最后一个未选中)。