Обнаружьте, когда определенное <опция> будет выбрано с jQuery

Я хотел бы, чтобы jQuery обнаружил когда опция с идентификатором trade_buy_max выбран.

$(document).ready(function() {
    $("option#trade_buy_max").select(function () {
        //do something
    });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<select name='type' id='type'>
    <option id='trade_buy' value='1' selected='selected'>Buy</option>
    <option id='trade_buy_max' value='1'>Buy max</option>
    <option id='trade_sell' value='2'>Sell</option>
    <option id='trade_sell_max' value='2'>Sell max</option>
</select>

Я попробовал следующее, но это, кажется, не работает.

Какие-либо идеи?

29
задан TylerH 28 March 2019 в 17:01
поделиться

6 ответов

Это работает ... Прослушайте событие изменения в поле выбора, чтобы сработать, и как только оно произойдет, просто извлеките атрибут id выбранной опции.

$("#type").change(function(){
  var id = $(this).find("option:selected").attr("id");

  switch (id){
    case "trade_buy_max":
      // do something here
      break;
  }
});
48
ответ дан 28 November 2019 в 01:17
поделиться

Что вам нужно сделать, это добавьте обработчик onchange в select :

$('#type').change(function(){ 
  if($(this).val() == 2){
     /* Do Something */
  }
});
9
ответ дан 28 November 2019 в 01:17
поделиться

вы можете вместо этого привязать событие change к его выбору, а затем проверить, выбрана ли опция

$("select#type").change(function () {
   if( $("option#trade_buy_max:selected").length )
   {
     // do something here
   }
});
4
ответ дан 28 November 2019 в 01:17
поделиться
$("option#trade_buy_max").change(function () {
    opt = $(this).children("option:selected").attr('id');
    if(opt == '#trade_sell_max'){
        // do stuff
    } 
});

Непроверенный, но это должно работать.

1
ответ дан 28 November 2019 в 01:17
поделиться

Используйте событие change и получите атрибут id выбранной опции:

$('#type').change(function () {
  var selectedId = $('option:selected', this).attr('id');

  if (selectedId == "trade_buy_max") {
    // do something
  }
});
1
ответ дан 28 November 2019 в 01:17
поделиться

Измените .select на .change и поставьте пробел перед #

0
ответ дан 28 November 2019 в 01:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: