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.
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;
}
});
Ce que vous devez faire est d’ajouter un gestionnaire onchange
à la select
:
$('#type').change(function(){
if($(this).val() == 2){
/* Do Something */
}
});
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
}
});
$("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.
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
}
});
Changez .sélectionnez pour .changez et mettez de l'espace avant #