基于选择的框 appearing/hiding 出现问题

Trouble with boxes appearing/hiding based on selection

我有一个动态下拉菜单,它根据第一个框的 selection 显示第二个框。我 运行 遇到的问题是,一旦我 select 选择其中一个选项,第二个框就不会保持打开状态。一旦我 select 在第二个框中选择一个选项,它就会立即消失。

我知道这与第二个脚本中的逻辑有关...

如有任何帮助,我们将不胜感激。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery Show Hide Elements Using Select Box</title>
<style>
    .box{
        color: #fff;
        padding: 20px;
        display: none;
        margin-top: 20px;
    }
    .red{ background: #808080; }
    .green{ background: #808080; }
    .blue{ background: #808080; }
    .orange{ background: #808080; }
    
    .box{
        padding: 20px;
    }
    .1{ background: #808080; }
    .2{ background: #808080; }
    .3{ background: #808080; }
    .4{ background: #808080; } 
    .5{ background: #808080; }
    .6{ background: #808080; }
    .7{ background: #808080; }
    .8{ background: #808080; }
    .9{ background: #808080; }
    .10{ background: #808080; }
    .11{ background: #808080; }
    .12{ background: #808080; }
    .13{ background: #808080; }
    .14{ background: #808080; }
    .15{ background: #808080; }
    .16{ background: #808080; }
    .17{ background: #808080; }
    .18{ background: #808080; }
    .19{ background: #808080; }
    .20{ background: #808080; }
    .21{ background: #808080; }
    .22{ background: #808080; }
    .23{ background: #808080; }
    .24{ background: #808080; }
    .25{ background: #808080; }
    .26{ background: #808080; }
    .27{ background: #808080; }
    .28{ background: #808080; }
    .29{ background: #808080; }
    .30{ background: #808080; }
    .31{ background: #808080; }
    
    .box{
        padding: 20px;
    }
    .Monday{ background: #808080; }
    .Tuesday{ background: #808080; }
    .Wednesday{ background: #808080; }
    .Thursday{ background: #808080; } 
    .Friday{ background: #808080; }
    .Saturday{ background: #808080; }
    .Sunday{ background: #808080; }
</style>
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script>
$(document).ready(function(){
    $("select").change(function(){
        $(this).find("option:selected").each(function(){
            var optionValue = $(this).attr("value");
            if(optionValue){
                $(".box").not("." + optionValue).hide();
                $("." + optionValue).show();
            } else{
                $(".box").hide();
            }
        });
    }).change();
});
</script>
</head>
<body>
    <div>
        <select>
            <option>Choose Frequency</option>
            <option value="red">Monthly</option>
            <option value="green">Semi-Monthly</option>
            <option value="blue">Bi-Weekly</option>
             <option value="orange">Weekly</option>
        </select>
    </div>
    <div class="red box">
    <select>
      <option>1</option>
      <option>2</option>
      <option>3</option>
      <option>4</option>
      <option>5</option>
      <option>6</option>
      <option>7</option>
      <option>8</option>
      <option>9</option>
      <option>10</option>
      <option>11</option>
      <option>12</option>
      <option>13</option>
      <option value="14">14</option>
      <option>15</option>
      <option>16</option>
      <option>17</option>
      <option>18</option>
      <option>19</option>
      <option>20</option>
      <option>21</option>
      <option>22</option>
      <option>23</option>
      <option>24</option>
      <option>25</option>
      <option>26</option>
      <option>27</option>
      <option>28</option>
      <option>29</option>
      <option>30</option>
      <option>31</option>
    </select>
    </div>
    <div class="green box">
    <select>
      <option>1</option>
      <option>2</option>
      <option>3</option>
      <option>4</option>
      <option>5</option>
      <option>6</option>
      <option>7</option>
      <option>8</option>
      <option>9</option>
      <option>10</option>
      <option>11</option>
      <option>12</option>
      <option>13</option>
      <option>14</option>
      <option>15</option>
      <option>16</option>
      <option>17</option>
      <option>18</option>
      <option>19</option>
      <option>20</option>
      <option>21</option>
      <option>22</option>
      <option>23</option>
      <option>24</option>
      <option>25</option>
      <option>26</option>
      <option>27</option>
      <option>28</option>
      <option>29</option>
      <option>30</option>
      <option>31</option>
    </select>
    and
    <select>
      <option>1</option>
      <option>2</option>
      <option>3</option>
      <option>4</option>
      <option>5</option>
      <option>6</option>
      <option>7</option>
      <option>8</option>
      <option>9</option>
      <option>10</option>
      <option>11</option>
      <option>12</option>
      <option>13</option>
      <option>14</option>
      <option>15</option>
      <option>16</option>
      <option>17</option>
      <option>18</option>
      <option>19</option>
      <option>20</option>
      <option>21</option>
      <option>22</option>
      <option>23</option>
      <option>24</option>
      <option>25</option>
      <option>26</option>
      <option>27</option>
      <option>28</option>
      <option>29</option>
      <option>30</option>
      <option>31</option>
    </select>
    </div>
    <div class="blue box">
    <select>
      <option>Monday</option>
      <option>Tuesday</option>
      <option>Wednesday</option>
      <option>Thursday</option>
      <option>Friday</option>
      <option>Saturday</option>
      <option>Sunday</option>
    </select>
    </div>
    <div class="orange box">
    <select>
     <option>Monday</option>
     <option>Tuesday</option>
     <option>Wednesday</option>
     <option>Thursday</option>
     <option>Friday</option>
     <option>Saturday</option>
     <option>Sunday</option>
    </select>
    </div>
</body>
</html>

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery Show Hide Elements Using Select Box</title>
<style>
    .box{
        color: #fff;
        padding: 20px;
        display: none;
        margin-top: 20px;
    }
    .red{ background: #808080; }
    .green{ background: #808080; }
    .blue{ background: #808080; }
    .orange{ background: #808080; }
    
    .box{
        padding: 20px;
    }
    .1{ background: #808080; }
    .2{ background: #808080; }
    .3{ background: #808080; }
    .4{ background: #808080; } 
    .5{ background: #808080; }
    .6{ background: #808080; }
    .7{ background: #808080; }
    .8{ background: #808080; }
    .9{ background: #808080; }
    .10{ background: #808080; }
    .11{ background: #808080; }
    .12{ background: #808080; }
    .13{ background: #808080; }
    .14{ background: #808080; }
    .15{ background: #808080; }
    .16{ background: #808080; }
    .17{ background: #808080; }
    .18{ background: #808080; }
    .19{ background: #808080; }
    .20{ background: #808080; }
    .21{ background: #808080; }
    .22{ background: #808080; }
    .23{ background: #808080; }
    .24{ background: #808080; }
    .25{ background: #808080; }
    .26{ background: #808080; }
    .27{ background: #808080; }
    .28{ background: #808080; }
    .29{ background: #808080; }
    .30{ background: #808080; }
    .31{ background: #808080; }
    
    .box{
        padding: 20px;
    }
    .Monday{ background: #808080; }
    .Tuesday{ background: #808080; }
    .Wednesday{ background: #808080; }
    .Thursday{ background: #808080; } 
    .Friday{ background: #808080; }
    .Saturday{ background: #808080; }
    .Sunday{ background: #808080; }
</style>
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script>
$(document).ready(function(){
    $("#select").change(function(){
        $(this).find("option:selected").each(function(){
            var optionValue = $(this).attr("value");
            if(optionValue){
                $(".box").not("." + optionValue).hide();
                $("." + optionValue).show();
            } else{
                $(".box").hide();
            }
        });
    }).change();
});
</script>
</head>
<body>
    <div>
        <select id="select">
            <option>Choose Frequency</option>
            <option value="red">Monthly</option>
            <option value="green">Semi-Monthly</option>
            <option value="blue">Bi-Weekly</option>
             <option value="orange">Weekly</option>
        </select>
    </div>
    <div class="red box">
    <select>
      <option>1</option>
      <option>2</option>
      <option>3</option>
      <option>4</option>
      <option>5</option>
      <option>6</option>
      <option>7</option>
      <option>8</option>
      <option>9</option>
      <option>10</option>
      <option>11</option>
      <option>12</option>
      <option>13</option>
      <option value="14">14</option>
      <option>15</option>
      <option>16</option>
      <option>17</option>
      <option>18</option>
      <option>19</option>
      <option>20</option>
      <option>21</option>
      <option>22</option>
      <option>23</option>
      <option>24</option>
      <option>25</option>
      <option>26</option>
      <option>27</option>
      <option>28</option>
      <option>29</option>
      <option>30</option>
      <option>31</option>
    </select>
    </div>
    <div class="green box">
    <select>
      <option>1</option>
      <option>2</option>
      <option>3</option>
      <option>4</option>
      <option>5</option>
      <option>6</option>
      <option>7</option>
      <option>8</option>
      <option>9</option>
      <option>10</option>
      <option>11</option>
      <option>12</option>
      <option>13</option>
      <option>14</option>
      <option>15</option>
      <option>16</option>
      <option>17</option>
      <option>18</option>
      <option>19</option>
      <option>20</option>
      <option>21</option>
      <option>22</option>
      <option>23</option>
      <option>24</option>
      <option>25</option>
      <option>26</option>
      <option>27</option>
      <option>28</option>
      <option>29</option>
      <option>30</option>
      <option>31</option>
    </select>
    and
    <select>
      <option>1</option>
      <option>2</option>
      <option>3</option>
      <option>4</option>
      <option>5</option>
      <option>6</option>
      <option>7</option>
      <option>8</option>
      <option>9</option>
      <option>10</option>
      <option>11</option>
      <option>12</option>
      <option>13</option>
      <option>14</option>
      <option>15</option>
      <option>16</option>
      <option>17</option>
      <option>18</option>
      <option>19</option>
      <option>20</option>
      <option>21</option>
      <option>22</option>
      <option>23</option>
      <option>24</option>
      <option>25</option>
      <option>26</option>
      <option>27</option>
      <option>28</option>
      <option>29</option>
      <option>30</option>
      <option>31</option>
    </select>
    </div>
    <div class="blue box">
    <select>
      <option>Monday</option>
      <option>Tuesday</option>
      <option>Wednesday</option>
      <option>Thursday</option>
      <option>Friday</option>
      <option>Saturday</option>
      <option>Sunday</option>
    </select>
    </div>
    <div class="orange box">
    <select>
     <option>Monday</option>
     <option>Tuesday</option>
     <option>Wednesday</option>
     <option>Thursday</option>
     <option>Friday</option>
     <option>Saturday</option>
     <option>Sunday</option>
    </select>
    </div>
</body>
</html>

试试这个!

您 javascript 检查了第一个和第二个 select 框。