2016-09-23 82 views
0

我在選擇中有多個選項。如果選擇選項,將顯示特定的<div>如何使用jquery選擇選項時顯示相關div?

這是我的html。

$(function() { 
    $("#reports").change(function() { 
    if ($("#subjects").is(":selected")) { 
     $("#subjects_form").show(); 
     $("#classes_form").hide(); 
     /* ... */ 
    } 
    if ($("#classes").is(":selected")) { 
     $("#classes_form").show(); 
     $("#subjects_form").hide(); 
     /* ... */ 
    } 
    if (...) { 
     ... 
    } else { 
     $("#subjects_form").hide(); 
     $("#classes_form").hide(); 
     ... 
    } 
    }).trigger('change'); 
}); 
.form { display: none } 
<select class="form-control" id="reports"> 
    <option selected="selected" disabled="disabled" value="">Select Report to print</option> 
    <option value="subjects" id="subjects">Subjects</option> 
    <option value="classes" id="classes">Classes</option> 
    <option value="teachers" id="teachers">Teachers</option> 
    <option value="students" id="students">Students</option> 
    <option value="departments" id="departments">Departments</option> 
</select> 

<div class="form" id="subjects_form">Subjects</div> 
<div class="form" id="classes_form">Classes</div> 
<div class="form" id="teachers_form">Teachers</div> 
<div class="form" id="students_form">Students</div> 

但是上面只有代碼的最後一個選項起作用。

+1

'Id'對'option'標籤來說是無效的屬性。見https://developer.mozilla.org/en/docs/Web/HTML/Element/option – Mohammad

回答

2

Id對於<option>標記無效。使用值屬性而不是id並通過它選擇相關的div。

$("#reports").change(function() { 
 
    $(".form").hide(); 
 
    $("#" + this.value + "_form").show(); 
 
}).trigger('change');
.form { display: none }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select class="form-control" id="reports"> 
 
    <option selected disabled value="">Select Report to print</option> 
 
    <option value="subjects">Subjects</option> 
 
    <option value="classes">Classes</option> 
 
    <option value="teachers">Teachers</option> 
 
    <option value="students">Students</option> 
 
    <option value="departments">Departments</option> 
 
</select> 
 

 
<div class="form" id="subjects_form">Subjects</div> 
 
<div class="form" id="classes_form">Classes</div> 
 
<div class="form" id="teachers_form">Teachers</div> 
 
<div class="form" id="students_form">Students</div> 
 
<div class="form" id="departments_form">Departments</div>

+0

這個工程。再次感謝 :) – kcNeko

0

你必須使用else if語句巢您的條件,否則你會總是沿着首創if的運行最後else條件。

$(function() { 
     $("#reports").change(function() { 
     if ($("#subjects").is(":selected")) { 
      $("#subjects_form").show(); 
      $("#classes_form").hide(); 
      ... 
     } 
     else if ($("#classes").is(":selected")) { 
      $("#classes_form").show(); 
      $("#subjects_form").hide(); 
      ... 
     } 
     else if (...) { 
      ... 
     } 
     else { 
      $("#subjects_form").hide(); 
      $("#classes_form").hide(); 
      ... 
     } 
     }).trigger('change'); 
    }); 
相關問題