Как сделать выбор нескольких и одного при выпадающем выборе

#javascript #html #jquery

#javascript #HTML #jquery

Вопрос:

У меня есть javascript, который управляет отображением базы DIV в выпадающем списке выбора другого DIV. В первом выпадающем списке есть список из одного, нескольких и ни одного. Когда выбрано значение single, я хочу, чтобы оно изменило второй выпадающий список DIV на single, когда несколько выбранных должны сделать его множественным, а когда выбрано значение none, оно должно изменить его на single select. Ниже приведен мой код:

 
<script type="text/javascript">
    function setSecondDropdown(){
let firstDrop = document.getElementById("blocation");
let text = firstDrop.options[firstDrop.selectedIndex].text;
let secondDrop = document.getElementById("subtype");
document.getElementById("subtypeDiv").style.display = "block";}
</script>

<!--- First DIV ------->
                  <div>
                        <label for="sampleRecipientInput">How many physical locations you have *</label>
                        <div class="ss-custom-select">
                            <select class="full-width" id="blocation" name="blocation" onchange="setSecondDropdown()">
                                <option value="" disabled selected hidden>Select the number of physical location</option>
                                
                                <option value="One">One</option>
                                <option value="Multiple">Multiple</option>
                                <option value="Online">None (ex. online only)</option>
                            </select>
                        </div>  
                            <p id = "displayLocationError" style="color: red"></p>                              
                  </div>

<!----- Second DIV ------->
                  <div>
                        <label for="sampleRecipientInput">Subtype of business?</label>
                        <div class="ss-custom-select" id="subtypeDiv" style="display: none;">
                            <select class="full-width" id="subtype" name="subtype[]" multiple="false">
                                
                                <option value=""  disabled selected hidden>Select the subtype of business</option>
                                    </select>
                        </div>      
                            <p id = "displaySubTypeError" style="color: red"></p>                   
                                
                  </div>
  

Ответ №1:

Возможно, я неправильно понял вашу проблему. Вот мое предложение, поправьте меня, хотелось бы чего-то еще.

Удалите onchange=»setSecondDropdown()» и используйте приведенный ниже код

 const firstD=document.getElementById('blocation');
const secDiv= document.getElementById('subtypeDiv');
const secondD= document.getElementById('subtype');

firstD.addEventListener('change',()=>{
  secDiv.style.display='block';

  switch(firstD.options[firstD.selectedIndex].value){
    case 'One':
      secondD.removeAttribute('multiple');
      break;
    case 'Multiple':
      secondD.setAttribute('multiple','true');
      break;
    case 'Online':
      secondD.removeAttribute('multiple');
      break;
  }
});
  

Проверьте ссылку, указанную в комментарии!

Комментарии:

1. Я заменил свой скрипт на ваш, и он ничего не сделал при выборе любого выпадающего списка. Подтип вообще не отображался

2. Я считаю, что это работает. Проверьте это: jsfiddle.net/quazwro2