javascript - 创建级联下拉组

标签 javascript jquery html cascadingdropdown

我正在尝试创建一组下拉菜单来创建“搜索”。每个下拉列表都应隐藏,直到选择前一个下拉列表。上一个选择的值与下一个下拉列表中的值无关。仅当先前的下拉列表仍为默认值时,才应隐藏它们。有没有办法让这成为可能?我已经能够隐藏第二个下拉菜单,但从第三个及以后,我无法使它们动态显示。

这是所有下拉菜单在没有任何 CSS 的情况下的外观: enter image description here

我希望隐藏“年份”之后的每个下拉列表,并且在每个下拉列表之后,会出现下一个下拉列表。

这是我当前的代码:

     <form name="ftpquery" method="post" action="sendFTP.php">
        <select name="year">
          <option value="">Year</option>
            <?php for($i = 1992; $i < 2016; $i++) { ?>
          <option value = "<?php echo $i; ?>"><?php echo $i; ?></option>;
            <?php } ?>
        </select>

        <select  name = "julian">
          <option value = "">Julian</option>
            <?php
              for($i = 1; $i < 366; $i++){
            ?>
          <option value = "<?php echo $i ?>"><?php echo $i ?></option>;
            <?php } ?>
        </select>

        <select name = "station">
          <option value = "">Station</option>
          <?php 
            while ($row = mysqli_fetch_array($response)){
          ?>
          <option value = "<?php echo $row['Station'] ?>"><?php echo $row['Station'] ?></option>;
          <?php } ?>
        </select>

        <select name = "month">
          <option value = "">Month</option>
          <?php
            for($i = 1; $i < 13; $i++){
          ?>
          <option value = "<?php echo $i ?>"><?php echo $i ?></option>;
          <?php } ?>
        </select>

        <select name = "day">
          <option value = "">Day</option>
          <?php
            for($i = 1; $i <= 31; $i++){
          ?>
          <option value = "<?php echo $i ?>"><?php echo $i ?></option>;
          <?php } ?>
        </select>

        <select name = "hour">
          <option value = "">Hour</option>
          <?php
            for($i = 0; $i <= 23; $i++){
          ?>
          <option value = "<?php echo $i ?>"><?php echo $i ?></option>;
          <?php } ?>
        </select>
        <select name = "min">
          <option value = "">Min</option>
          <option value = "00"><?php echo "00" ?></option>;
          <option value = "15"><?php echo "15" ?></option>;
          <option value = "30"><?php echo "30" ?></option>;
          <option value = "45"><?php echo "45" ?></option>;
        </select>

        <select name = "version">
          <option value = "">Version</option>
          <option value = "a"><?php echo "a" ?></option>;
          <option value = "b"><?php echo "b" ?></option>;
        </select>

       <p>
         <input type="submit" value="Submit">   
       </p>
     </form>
   </body>

有什么办法可以实现这一点吗?

感谢您的时间和帮助!

最佳答案

我会像这样在 jQuery 中运行一些东西:

<style>
    select.date-select {
        display: none;
    }
</style>

<script type="text/javascript">
function selectShowHide()
{
    // Loop through all the .date-select selects
    $("select.date-select").each(function() {
        if ($(this).val() == 0) {
            // If it has no value hide it
            $(this).next("select.date-select").hide();
        } else {
            // If it does show it
            $(this).next("select.date-select").show();
        }
    });
}

$(function(){
    // On load activate the show hide
    selectShowHide();

    // Show the first one
    $("select.date-select").first().show();

    // On change of select work out what to hide
    $("select.date-select").change(function(){
        selectShowHide();
    });
});

</script>

您需要为所有选择提供一个日期选择类:

<select class="date-select">

</select>

还有一把 fiddle :http://jsfiddle.net/hnwLqo7h/

关于javascript - 创建级联下拉组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34142363/

相关文章:

javascript - FadeIn FadeOut 以及为什么 div 会移动?

asp.net - mvc4 或 html 5 中的文件输入过滤器?

jQuery:对于每组对象,追加到不同的 div

javascript - 如何突出显示单词或字母作为搜索中的用户输入?

javascript - Church 编码的总和类型是无类型语言的合适替代方案吗?

javascript - 是否可以仅通过 HTML/JavaScript 从 Internet Explorer 中呈现的页面打开 Microsoft Edge?

php - jquery 不发送超过 1 个值

javascript - 简单的 jQuery 切换到 $ ("html, body").css( {"overflow": "hidden"}); when opened and then switch to "scroll" when closed

javascript - 如果容器高度小于固定值,则隐藏元素

javascript - 删除元素后的 jQuery 动画