2017-01-30 1 views
0

J'ai un problème pour masquer la deuxième zone de texte lors de la sélection du premier. et vice versa. Je pense que je ne peux pas avoir le code écrit correctement.Afficher une zone de texte lors de la sélection d'une couleur et de la masquer à la même heure

<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

Ne pas inline JavaScript comme qui veuillez – j08691

+0

Tout d'abord, cela devrait vraiment être dans une balise de script distinct, ou un fichier, et d'être appelé $ ('# couleur2') changement. (). Deuxièmement, le hide color_a dans l'instruction else doit avoir un # devant lui s'il s'agit d'un identifiant. – MCMXCII

+0

En outre, la partie else d'un if/else ne prend pas de paramètre, vous aurez besoin d'un autre if. – MCMXCII

Répondre

1

Définir vos sélections d'éléments sur le dessus et les affecter à un var, de cette façon vous n'avez pas à traverser le DOM chaque fois que vous cliquez sur l'élément pour sélectionner les autres éléments. Mettez-le dans une étiquette de script, cela vous évitera beaucoup de maux de tête.

(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

cela ne fonctionne pas comme je l'ai besoin pour vérifier inline ci-dessous – Donny

+1

je vois son travail sur l'extrait de sorte que je puisse vous donner le crédit pour cela – Donny