2017-05-05 116 views
0

我有以下javascript代碼來顯示/隱藏我的div,它工作正常。但在這個隱藏的div中,我有另一個下拉菜單,當我在這個下拉菜單中選擇一些東西時,完整的div消失。顯示/隱藏下拉,隱藏div中的新下拉列表消失

有人可以幫助我嗎?

$(document).ready(function(){ 
 
    $("select").change(function(){ 
 
     $(this).find("option:selected").each(function(){ 
 
      var optionValue = $(this).attr("value"); 
 
      if(optionValue){ 
 
       $(".reason").not("." + optionValue).hide(); 
 
       $("." + optionValue).show(); 
 
      } 
 
\t \t \t else{ 
 
       $(".reason").hide(); 
 
      } 
 
     }); 
 
    }).change(); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<select name="hold_reason"> 
 
<option value="">Select option</option> 
 
<option value="Hold">Hold</option> 
 
</select> 
 

 

 
<div class="Hold reason">Hold reason 
 
<select class="form-control" name="hold_reason"> 
 
<option value="">Select reason</option> 
 
<option value="">hold</option> 
 
</select> 
 
</div>

回答

0

這裏是更新的摘要內容。

每個選擇都應該有唯一的名稱。而且您應該只在第一次選擇時查找更改事件。

$(document).ready(function(){ 
 
    // changed line 
 
    // this selects the first select element 
 
    $("select[name='hold']").change(function(){ 
 
     $(this).find("option:selected").each(function(){ 
 
      var optionValue = $(this).attr("value"); 
 
      if(optionValue) { 
 
       $(".reason").not("." + optionValue).hide(); 
 
       $("." + optionValue).show(); 
 
      } 
 
\t \t \t  else { 
 
       $(".reason").hide(); 
 
      } 
 
     }); 
 
    }).change(); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<select name="hold"> 
 
    <option value="">Select option</option> 
 
    <option value="Hold">Hold</option> 
 
</select> 
 

 

 
<div class="Hold reason">Hold reason 
 
    <select class="form-control" name="hold_reason"> 
 
    <option value="">Select reason</option> 
 
    <option value="">hold</option> 
 
    </select> 
 
</div>

+0

非常感謝!這幫助我解決了這個問題! – Marios