web-dev-qa-db-fra.com

Détecter quand une option est sélectionnée avec jQuery

J'ai le menu déroulant suivant:

<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>

J'aimerais que jQuery détecte quand l'option avec l'ID trade_buy_max est sélectionnée.

J'ai essayé ce qui suit, mais cela ne semble pas fonctionner.

$(document).ready(function() {

    $("option#trade_buy_max").select(function () {

        //do something

    });
});

Des idées?

Merci d'avance.

27
Philip Morton

Cela fonctionne ... Ecoutez l'événement de modification dans la zone de sélection à déclencher et, une fois que c'est fait, extrayez l'attribut id de l'option sélectionnée.

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

  switch (id){
    case "trade_buy_max":
      // do something here
      break;
  }
});
45
Ryan

Ce que vous devez faire est d’ajouter un gestionnaire onchange à la select:

$('#type').change(function(){ 
  if($(this).val() == 2){
     /* Do Something */
  }
});
9
Justin Swartsel

vous pouvez lier l'événement change à sa place, puis vérifier si l'option est sélectionnée

$("select#type").change(function () {
   if( $("option#trade_buy_max:selected").length )
   {
     // do something here
   }
});
4
Anwar Chandra
$("option#trade_buy_max").change(function () {
    opt = $(this).children("option:selected").attr('id');
    if(opt == '#trade_sell_max'){
        // do stuff
    } 
});

Non testé, mais cela devrait fonctionner.

1
inkedmn

Utilisez le change event et obtenez l'attribut id de l'option sélectionnée:

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

  if (selectedId == "trade_buy_max") {
    // do something
  }
});
1
CMS

Changez .sélectionnez pour .changez et mettez de l'espace avant #

0
Amr Elgarhy