如何在另一个 select 列表中的 selection 之后 show/hide 一个 select 列表?

How to show/hide a select list after the selection in another select list is made?

我现在有一个 select 列表,如下所示:

现在我希望第二个 select 列表仅在对第一个 select 列表进行 selection/change 时显示。当对第二个 selection/change 进行排序时,我希望显示第三个和第四个 select 列表。

这是 select 列表的代码:

<div class="row">
    <div id="content-a">
        <div class='content-row'>
            <div class="select_1 col-md-12">
                <span>
                    <select class="form-control" name="table_names" id="slctTable"> 
                    </select>
                </span>    
            </div>
        </div>
    </div>
</div>
<div class="row">  
    <div class="select_2 col-md-12">
        <span>
            <select class="form-control" name="column_names" id="slctField">
            </select>
        </span>    
    </div>
</div>
<div class="row">
    <div class="select_3 col-md-3">
        <span>
            <select class="form-control" name="comparisonOperators" id="slctOperator">  
            </select>
        </span>    
    </div>
    <div class="select_4 col-md-9">
        <span>
            <select class="form-control" name="attribute_names" id="slctAttribute">  
            </select>
        </span>    
    </div> 
</div>

您可以使用下面提到的链接中的内容。

Dependent Dropdown

Dropdown List Plugin

尝试这个 code.You 可以使用 JQuery。 需要将 id 添加到第二行和第三行。现在更改第一个 select 显示第二个 select 行 (Id="step2") 等等...

$(document).ready(function(){

  jQuery(document).on('change','#slctTable',function() {
    jQuery("#step2").show();
  });
  jQuery(document).on('change','#slctField',function() {
    jQuery("#step3").show();
  });

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
 <div class="row">
    <div id="content-a">
        <div class='content-row'>
            <div class="select_1 col-md-12">
                <span>
                    <select class="form-control" name="table_names" id="slctTable">
     <option>Select First</option> <option>1</option>  
                    </select>
                </span>    
            </div>
        </div>
    </div>
</div>
<div class="row" id="step2" style="display: none;">  
    <div class="select_2 col-md-12">
        <span>
            <select class="form-control" name="column_names" id="slctField">
   <option>Select Second  </option><option>2</option> 
            </select>
        </span>    
    </div>
</div>
<div class="row" id="step3" style="display: none;">
    <div class="select_3 col-md-3">
        <span>
            <select class="form-control" name="comparisonOperators" id="slctOperator">
                <option>3</option> 
            </select>
        </span>    
    </div>
    <div class="select_4 col-md-9">
        <span>
            <select class="form-control" name="attribute_names" id="slctAttribute">  
                <option>4</option> 
            </select>
        </span>    
    </div> 
</div>

你可以随时尝试 jQuery Hide/Show element

像这样有一些东西要注意你的变化

$(".slctTable").on('change', function(){
   $('.select_2').show();
})

或者您可以检查第一个选择中的值是否未定义或为空 首先用 (jQuery) 或 CSS

隐藏其他元素
 .select_2 {
    display: none;
}
.select_3 {
   display: none;
}

然后如果第一个选择器不是未定义的或 Null 则显示选择器

我不太明白你所说的显示是什么意思,但是如果你希望在你的第一个 selection 之后填充你的列表 select,请使用 XmlHttp Request。

一个小例子:

xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange=function(){
    if(xmlhttp.readyState==4 && xmlhttp.status==200)
        //TODO
}
xmlhttp.open("GET", "your_request_page.php", true);
xmlhttp.send();