如果在我的页面上选择了2个选项之一,我正在尝试显示div。这是选择菜单:
<select id="graph_select">
<option id="pilot_form">Pilot Hours</option>
<option id="client_form">Client Hours</option>
</select>
这是第一个选择的第一个div:
<div id="pilot_graph_form" align="center" style="margin:0 auto; display:none;">
<form action="?page=reporter" method="POST" name="graph_form">
<p>From:</p>
<select name="start_date">
<cfloop query="date_worked_menu">
<option>#date_worked_menu.date_worked#</option>
</cfloop>
</select>
<br />
<br />
<p>To:</p>
<select name="end_date">
<cfloop query="date_worked_menu">
<option>#date_worked_menu.date_worked#</option>
</cfloop>
</select>
<br />
<input class="btn btn-success" type="Submit" name="submit_to_graph" value="Submit" id="submit_to_graph">
</form>
</div>
这是我的第二个选项的div:
<div id="client_graph_form" align="center" style="margin:0 auto; display:none;">
<form action="?page=reporter" method="POST" name="graph_form_clients">
<p>From:</p>
<select name="client">
<cfloop query="client_menu">
<option value="#client_menu.id#">#client_menu.name#</option>
</cfloop>
</select>
<input class="btn btn-success" type="Submit" name="submit_to_graph" value="Submit" id="submit_to_graph">
</form>
</div>
这是我到目前为止的jQuery函数:
<script type="text/javascript">
$(function() {
$("#graph_select").change(function() {
if($("#pilot_form").is(":selected")) {
$("#pilot_graph_form").css({"display":"block"});
}
else {
$("#pilot_graph_form").css({"display":"none"});
}
if($("#client_form").is(":selected")) {
$("#client_graph_form").css({"display":"block"});
}
else {
$("#client_graph_form").css({"display":"none"});
}
});
});
</script>
答案 0 :(得分:16)
首先,您应该将“选项”上的“id”更改为“value”。
然后你可以使用它:
$(function () {
$("#graph_select").change(function() {
var val = $(this).val();
if(val === "pilot_form") {
$("#pilot_graph_form").show();
$("#client_graph_form").hide();
}
else if(val === "client_form") {
$("#client_graph_form").show();
$("#pilot_graph_form").hide();
}
});
});
答案 1 :(得分:6)
$(function() {
$("#graph_select").change(function() {
if ($("#pilot_form").is(":selected")) {
$("#pilot_graph_form").show();
$("#client_graph_form").hide();
} else {
$("#pilot_graph_form").hide();
$("#client_graph_form").show();
}
}).trigger('change');
});
答案 2 :(得分:3)
更改选择框时,您可以淡出所需的元素:
$('#graph_select').change(function(){
var divID = $(this).children('option:selected').attr('id');
if(divID == 'pilot_form'){
$('#client_graph_form').fadeOut(1000,function(){
$('#pilot_graph_form').fadeIn(500);
});
}else{
$('#pilot_graph_form').fadeOut(1000,function(){
$('#client_graph_form').fadeIn(500);
});
}
});
<强>更新强>
以其他方式:
如果你在选项中使用与div的id名称相同的名称会更好:
<select id="graph_select">
<option class="pilot_graph_form">Pilot Hours</option>
<option class="client_graph_form">Client Hours</option>
</select>
为每个<div>
<div id="client_graph_form" class="forms"
...
<div id="pilot_graph_form" class="forms"
jQuery:
$('#graph_select').change(function(){
var divID = $(this).children('option:selected').attr('class');
$('.forms').fadeOut(1000,function(){
$('#'+divID).fadeIn(500);
});
});
答案 3 :(得分:0)
代码没问题,加载jquery可能有问题,我建议你使用
$(window).load(function(){
//Code
});