2017-01-30 1 views
0

Ich habe ein Problem damit, dass die zweite Textbox ausgeblendet wird, wenn die erste ausgewählt wird. und umgekehrt. Ich denke, ich kann den Code nicht korrekt geschrieben haben.Ein Textfeld anzeigen, wenn eine Farbe ausgewählt und gleichzeitig ausgeblendet wird

<select id = 'color2' name = 'dept' onchange = " 

      if ($('#color2').val() == 'others') 
        { 
         $('#color_a').show(); 
         $('#color_b').hide(); 
        } 

      else($('#color2').val() == 'blue') 
        { 
         $('#color_b').show(); 

         $('color_a').hide(); 
        } 

        "> 


    <option value="">Select a Field</option> 
    <option value="blue">BLUE</option> 
    <option value="others">others</option> 
</select> 
+2

nicht Inline JavaScript so – j08691

+0

Erstens bitte, soll dies wirklich in einem separaten Skript-Tag sein, oder Dateien, und auf $ genannt wird ('# color2'). Änderung (). Zweitens sollte die hide color_a in der else-Anweisung ein # davor haben, wenn es sich um eine ID handelt. – MCMXCII

+0

Auch der else-Teil von einem if/else nimmt keinen Parameter, Sie wollen einen else if. – MCMXCII

Antwort

1

Definieren Sie Ihre Elementauswahl auf und ordnen sie eine var, dass, wie Sie das DOM nicht jedes Mal, wenn Sie auf dem Element klicken durchlaufen müssen, um die anderen Elemente auszuwählen.

Setzen Sie es in ein Skript-Tag, es wird eine Menge Kopfschmerzen speichern.

(function($){ 
 
$(function(){ 
 
    var select = $('#color2'), 
 
     colorA = $('#color_a'), 
 
     colorB = $('#color_b'); 
 
    
 
    // hide all colors 
 
    $('.color').hide(); 
 
    
 
    select.on('change', function(){ 
 
    $('.color').hide(); 
 
     
 
    if (select.val() == 'others'){ 
 
     colorA.show(); 
 
    } 
 
    else if (select.val() == 'blue') { 
 
     colorB.show(); 
 
    } 
 
     
 
    }); 
 
    
 
}) 
 
})(jQuery)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<select id="color2" name='dept'> 
 
    <option value="">Select a Field</option> 
 
    <option value="blue">BLUE</option> 
 
    <option value="others">others</option> 
 
</select> 
 

 
<div id="color_a" class="color">Color A (others)</div> 
 
<div id="color_b" class="color">Color B (blue)</div>

+0

das funktioniert nicht die Art, wie ich brauche es zu prüfen, inline unten – Donny

+1

ich sehe seine Arbeit an der Schnipsel, so kann ich Ihnen Kredit dafür geben – Donny

Verwandte Themen