Javascript 变更函数中存在多个元素的问题

Javascript 变更函数中存在多个元素的问题,javascript,jquery,function,checkbox,onchange,Javascript,Jquery,Function,Checkbox,Onchange,我有两个部分将显示在我的小提琴。您选择产品a或B的第一部分。然后,每当您选择一个选项时,都会显示“下一步”按钮。单击“下一步”时,将进入显示产品选择的第二部分 我相信我的问题存在于我的变更函数或其中的if语句中。基本上,我不确定以以下代码开头的代码有何错误: $('#package1, #package2').on('change', function () { if ($('#package1' && '#package2').prop("checked")

我有两个部分将显示在我的小提琴。您选择产品a或B的第一部分。然后,每当您选择一个选项时,都会显示“下一步”按钮。单击“下一步”时,将进入显示产品选择的第二部分

我相信我的问题存在于我的变更函数或其中的if语句中。基本上,我不确定以以下代码开头的代码有何错误:

  $('#package1, #package2').on('change', function () {
        if ($('#package1' && '#package2').prop("checked")) {
我想格式化后的产品选择不同的基础上选择的第二部分。我正在努力做的是,如果产品A和B都被选中,只在第二部分中显示产品A部分pg review部分,而隐藏产品B部分tp选择

基本上,如果同时选择了A和B,我不确定如何修改代码,但我希望它运行一个更改函数,以防选择在任何点发生更改

下面的代码是我正在努力解决的问题

$('#package1', '#package2').on('change', function () {
    if ($('#package1' && '#package2').prop("checked")) {
        $('#pg-review-section').show();
        $('#tp-review-section').show();
        $('#tp-selection').hide();
        $('#tp-selection').fadeBoolToggle($('#calendar-preview-select option:selected'));
    }
});
$('#package1').on('change', function () {
    if ($('#package1').prop("checked")) {
        $('#pg-selection').show();
        $('#pg-review-section').show();
        $('#tp-review-section').hide();
    } else {
        $('#pg-selection').hide();
    }
});
$('#package2').on('change', function () {
    if ($('#package2').prop("checked")) {
        $('#tp-selection').show();
        $('#tpreview-section').show();
        $('#pg-review-section').hide();
    } else {
        $('#tp-selection').hide();
    }
});
更新:

$('#package1, #package2').on('change', function () {
     if ($('#package1').prop('checked') && $('#package2').prop('checked').length === 2) {
        $('#pg-review-section').show();
        $('#tp-review-section').show();
        $('#tp-selection').hide();
        $('#tp-selection').fadeBoolToggle($('#calendar-preview-select option:selected'));
    }
     else if ($('#package1').prop("checked") && !$('#package2').prop('checked')) {
        $('#pg-selection').show();
        $('#pg-review-section').show();
        $('#tp-review-section').hide();
    }
     else if ($('#package2').prop("checked") && !$('#package1').prop('checked')) {
        $('#tp-selection').show();
        $('#tp-review-section').show();
        $('#pg-review-section').hide();
    }
});
使用jquery选择器:选中并测试长度:

if ($('#package1:checked, #package2:checked').length === 2)

在更新版本中,第一个if语句中缺少package1上的.length

如果您想要的逻辑是:

a checked=>转到某个部分

b选中=>转到b部分

都选中=>转到某个部分

为什么不创建一个通用函数来添加到更改事件中?类似的东西

$('#package1').on('change', function () {
    myChangeFunction();
});
$('#package2').on('change', function () {
    myChangeFunction();
});
function myChangeFunction(){
   if ($('#package2').prop("checked") && $('#package1').prop("checked")){
      // show a and hide b
   }
   else if($('#package1').prop("checked")){
      // show a and hide b
   }
   else if($('#package2').prop("checked")){
      //  show b and hide a
   }
   else{
      //hide both
   }
}

我认为$'package1','package2'应该是$'package1,package2'-注意引号。另外,您需要单独发现选中状态,即如果$'package1'。prop'checked'和&$package2'。prop'checked'@rorymcrossan谢谢,但我不确定我做错了什么,因为更改为您的解决方案仍然显示产品B。@rorymcrossan在我的问题中,我添加了我现在正在尝试的更新代码。这是行不通的。我改变了一些结构。我不知道我做错了什么。基本上,如果你点击产品A和产品B,你就会看到img所在的图标。然后继续。我只想A的内容现在就显示B也在显示。然后,当您选择A的选项1、2或3之一时,它将显示B。我在小提琴上展开。我不确定我做错了什么,但这似乎没有帮助。它仍然显示产品B。在我的问题中,我添加了我现在正在尝试的更新代码。这是行不通的。我改变了一些结构。我不知道我做错了什么。基本上,如果你点击产品A和产品B,你就会看到img所在的图标。然后继续。我只想A的内容现在就显示B也在显示。然后,当您选择A的选项1、2或3之一时,它将显示B。我在小提琴上展开。我不知道我做错了什么。基本上,如果你点击产品A和产品B,你就会看到img所在的图标。然后继续。我只想A的内容现在就显示B也在显示。然后,当您选择A的选项1、2或3之一时,它将显示B。我在小提琴上展开。只是为了澄清,当您在第一个屏幕上选择A时,您希望A选项显示1、2、3。然后,如果选择了任何选项,是否显示B?那么第一页上的选项B呢?是的,我想让产品B显示是否选择了1、2或3,只有当产品A和B都是从第一部分中选择的时候。您的小提琴中缺少了一些结尾div标记,我假设您的代码不是这样。要获得所需的功能,请将FadeBoltogle改为隐藏。这将在打开A时隐藏B。然后钩住选项1、2、3复选框的更改事件,然后显示选项B。如果没有意义,请告诉我,我将更新上面的答案。