Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.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 - Fatal编程技术网

Javascript 如果选中了一个复选框,如何取消选中另一个复选框?

Javascript 如果选中了一个复选框,如何取消选中另一个复选框?,javascript,jquery,Javascript,Jquery,我的计算器有些问题,我有五个复选框(成本一、成本二、成本三、成本四、成本五) 当我选中costOne时,那么costTwo应该关闭,但是如果我点击这个costTwo(然后关闭),那么costOne应该关闭 我的代码只能部分工作:当我点击costOne时,你不能再点击costTwo(因为它被禁用),但当我点击costOne时,它会关闭,同时costTwo会打开-这正是我想要的 但是我不能点击成本二 我需要的第一个和第三个输入具有这种关联的行为 以下是相关代码: //calculator var i

我的计算器有些问题,我有五个复选框(成本一、成本二、成本三、成本四、成本五)

当我选中costOne时,那么costTwo应该关闭,但是如果我点击这个costTwo(然后关闭),那么costOne应该关闭

我的代码只能部分工作:当我点击costOne时,你不能再点击costTwo(因为它被禁用),但当我点击costOne时,它会关闭,同时costTwo会打开-这正是我想要的

但是我不能点击成本二

我需要的第一个和第三个输入具有这种关联的行为

以下是相关代码:

//calculator
var init = $('.switch input').on('click', function() {
    var value1 = 0;
    var value2 = 0;

    var costOne = $("#cost-one"),
        costTwo = $("#cost-three");


    if (costOne.is(':checked')) { 
        costOne.prop("checked", true);
        costTwo.prop("checked", false);
    } else { 
        costOne.prop("checked", false);
        costTwo.prop("checked", true);
    }

    init.filter(':checked').closest('tr').each(function() {
        value1 += (+$(this).find('span.cost-one').text());
        value2 += (+$(this).find('span.cost-two').text());
    });

    $('.counter-one span').eq(0).html(value1 + ' ');
    $('.counter-two span').eq(0).html(value2 + ' ');
});

试试这个jquery


$(文档).ready(函数(e){
$('.example')。在('change',function()上{
$('.example').not(this).prop('checked',false);
});
});

单选按钮已经在本地实现了这一功能,正如评论所示:


您可以使用此代码(简化以关注问题):

$('input')。在('change',function()上{
var id=$(this.prop('id');
如果(id=='成本一'| | id=='成本三'){
//确保两者的值相反:
var other=id=‘成本一’?‘成本三’:‘成本一’;
$('#'+其他).prop(“选中”),!$(this.prop(“选中”);
}
});

一:
二:

三:
为什么不使用单选按钮而不是复选框从我读到的你的问题来看,它会给你想要的效果-除非我误解了你规范的一部分。是否有可能两个选项都没有选中?禁用意味着禁用<代码>禁用;它无法接收用户输入…可能是标题有误导性!我更新了你的问题,删除了“disabled”的歧义,它有时似乎表示“unchecked”。请看一下这是否正确反映了您的问题。我更新了我的答案以启用收音机的“取消选中”