Как выбрать конкретную опцию по ее значению из входных данных select и назначить разные функции для каждой опции?

#jquery #select #option

#jquery #html-выберите

Вопрос:

Я хочу выбрать конкретную опцию из входных данных select и назначить разные инструкции для каждой опции. Например —

 $(document).ready(function(){
        if($('#selectPlans option[value=Starter]:selected')) {
            $('#outcome').html('2 USD');
        }
        else if($('#selectPlans option[value=Premium]:selected')) {
            $('#outcome').html('4 USD');
        }
        else if($('#selectPlans option[value=Business]:selected'))    {
            $('#outcome').html('5 USD');
        }
        else {
            $('#outcome').html('');
        }

});
  
 <div class="plans">
    <select name="selectPlans" id="selectPlans">
        <option value="Starter">Starter</option>
        <option value="Premium">Premium</option>
        <option value="Business">Business</option>
    </select>
    <div class="outcome"></div>
</div>
  

В приведенных выше кодах всякий раз, когда кто-то выбирает опцию

1. «Starter» в разделе с идентификатором «результат» должно быть указано 2 доллара США

2. «Премиум» должен показывать 4 доллара США в разделе с идентификатором «результат»

3. «Бизнес» в разделе с идентификатором «результат» должно быть указано 5 долларов США

Существует также другой способ сделать это, например, в следующем примере

 $('#selectPlans').change(function(){
            var optionSelected = $('#selectPlans option:selected');
            $('#outcome').html(optionSelected.val());
        });  
 <div class="plans">
    <select name="selectPlans" id="selectPlans">
        <option value="2 USD">Starter</option>
        <option value="4 USD">Premium</option>
        <option value="5 USD">Business</option>
    </select>
    <div class="outcome"></div>
</div>  

Но таким образом я не могу выбрать конкретную опцию. Итак, мне нужно знать, как выбрать конкретную опцию и назначить ей функцию. Пожалуйста, помогите.

Ответ №1:

Сначала у вас ошибка типа: $('#outcome') должно быть $('.outcome')

Когда это исправлено, вы можете сократить свой код до этого:

 $('#selectPlans').change(function() {
  $('.outcome').html($('#selectPlans').val());
});
  

Рабочая демонстрация

 $('#selectPlans').change(function() {
  $('.outcome').html($('#selectPlans').val());
});  
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="plans">
  <select name="selectPlans" id="selectPlans">
    <option value="2 USD">Starter</option>
    <option value="4 USD">Premium</option>
    <option value="5 USD">Business</option>
  </select>
  <div class="outcome"></div>
</div>  

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

1. Я исправил это в своей системе. Пожалуйста, расскажите мне о следующем процессе.

2. Что не работает? вы проверили мою демо-версию @AnjanTalukdar