2017-05-05 2 views
0

Ich habe den folgenden JavaScript-Code, um mein div anzuzeigen und zu verstecken, und es funktioniert ordnungsgemäß. Aber in diesem versteckten div habe ich ein anderes Dropdown-Menü, und wenn ich etwas in diesem Dropdown-Menü wähle, verschwindet das komplette div.Zeige/Verstecke aus Dropdown, neues Dropdown in versteckten div verschwinden

Kann mir jemand helfen?

$(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>

Antwort

0

Hier ist die aktualisierte Snippet.

Jede Auswahl sollte einen eindeutigen Namen haben. Und Sie sollten nur bei der ersten Auswahl nach einem Änderungsereignis suchen.

$(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

Vielen Dank !! Das hat mir geholfen, das Problem zu beheben! – Marios