2016-12-08 9 views
0

Я пытаюсь скрыть или показать selectbox на основе первой опции selectbox. Я не уверен, почему он не работает. Другое дело, как я могу добавить несколько идентификаторов в один раздел (если пользователь выбирает «проект» или «моды», чтобы отображать selectbox 2)?Показать или скрыть поле выбора на основе выбора выпадающего списка

переключатель 1:

<select name="category_0" id="category_0" onchange="qa_category_select('category');" class="king-form-tall-select" style="display: none;"> 
    <option value=""></option> 
    <option value="1">Projects</option> 
    <option value="2">Mods</option> 
</select> 

<span id="category_0_sub"> 
<select name="category_1" id="category_1" onchange="qa_category_select('category');" class="king-form-tall-select"> 
<option value="" selected=""></option> 
<option value="1">Projects</option> 
<option value="2">Mods</option> 
</select> 
<span id="category_1_sub"> <select name="category_2" id="category_2" onchange="qa_category_select('category');" class="king-form-tall-select"> 
<option value="" selected=""></option> 
<option value="124">3D Art</option> 
<option value="125">Adventure</option> 
</select> 
</span></span> 

переключатель 2:

<select name="extra1" class="king-form-tall-select"> 
<option value="" selected=""></option> 
<option value="value36">1.11</option> 
<option value="value1">Older</option> 
</select> 

JS в HTML:

<script> 
$(document).ready(function(){ 
    $('#category_1').on('change', function() { 
     if (this.value == '1') 
     { 
     $("#extra1").show(); 
     } 
     else 
     { 
     $("#extra1").hide(); 
     } 
    }); 
}); 
</script> 

Если кто-то имеет представление о том, как это исправить, пожалуйста, дайте мне знать.

ответ

0
<script> 
$(document).ready(function(){ 
    var possibleValues = [1, 2]; 
    $('#category_1').on('change', function() { 
     $("#extra1").toggle(possibleValues.indexOf(+this.value) !== -1); 
    }); 
}); 
</script> 

, где posibleValues ​​является массивом всех выбранных значений (в моем случае это 1 и 2 для проектов и мод соответственно), которые должны показать второй выбор. Таким образом, вам не нужно добавлять несколько идентификаторов для второго выбора (также вы не можете этого сделать, id уникален и одно слово)

Кроме того, поскольку @Satpal заметил, что вам нужно добавить идентификатор «extra1» для второго выбора

+0

хорошо, если ваш первый выбор строит после выполнения скрипта - он не будет работать. Вы можете попробовать делегировать событие: $ (document) .on ('change', '# category_1', function() {....}) и он будет работать динамически –

+0

Я не использовал ваш код i использовал мой код, поскольку он по какой-то причине работает, если вы меняете категорию_1 на категорию_0 (проблема в том, что она только скрывает окно). Позже я узнал, что если ничто не выбрано, категория называется «category_0», а не «category_1». После выбора чего-либо используйте category_0 и category_1. Но поскольку category_1 не указывает ни на что, он не может действительно показать «extra1», поэтому теперь я не уверен, как это исправить. Также я обновил «Selectbox 1» – UXRO

Смежные вопросы