2017-01-30 1 views
0

У меня возникла проблема с отображением второго текстового поля при выборе первого. и наоборот. Я думаю, что я не могу правильно писать код.Показать текстовое поле при выборе одного цвета и скрыть другое время

<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

Не встраивать JavaScript так, пожалуйста, – j08691

+0

Во-первых, это должно быть действительно в отдельном теге скрипта, или файл, и вызывается на $ («# цвет2»). Изменение (). Во-вторых, у hide color_a в инструкции else должно быть # перед ним, если это идентификатор. – MCMXCII

+0

Кроме того, часть else if/else не принимает параметр, вам понадобится else if. – MCMXCII

ответ

1

Определите свой выбор элементов на верхней и назначить их вар, таким образом Вы не должны пересекать DOM каждый раз, когда вы щелкаете на элемент, чтобы выбрать другие элементы.

Поместите его в тег скрипта, он сэкономит много головных болей.

(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

Это не работает так, как мне нужно, чтобы проверить inline ниже – Donny

+1

Я вижу его работу над фрагментом, поэтому я могу дать вам кредит на это – Donny