如何在另一个 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>
您可以使用下面提到的链接中的内容。
尝试这个 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();
我现在有一个 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>
您可以使用下面提到的链接中的内容。
尝试这个 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();