2010-03-29 4 views
5

J'utilise Jeditable pour l'édition sur place. Un des contrôles avec lesquels je travaille a le type select. Lorsqu'un utilisateur clique sur le champ, le contrôle select suivant est généré:jQuery + Jeditable - détecter lorsque la sélection est modifiée

<div id="status" class="editable_select"> 
    <form> 
     <select name="value"> 
      <option value="Active">Active</option> 
      <option value="Inactive">Inactive</option> 
     </select> 
     <button type="submit">Save</button> 
     <button type="cancel">Cancel</button> 
    </form> 
</div> 

Ce que je suis en train de comprendre comment utiliser jQuery pour détecter que le contrôle select est modifié, d'autant plus qu'il n'a pas un attribut ID.

C'est ce que j'ai jusqu'à présent, mais l'événement ne se déclenche,

$(document).ready(function() { 
    $('#status select').change(function() { 
     alert("Change Event Triggered On:" + $(this).attr("value")); 
    }); 
}); 

MISE À JOUR

Mise à jour de jQuery 1.4.2 résolu mon problème avec l'aide de Matt Solution.

Répondre

7

Vous le trouverez probablement parce que le champ de sélection a été ajouté à la page après son chargement (et après que vos liaisons d'événements ont eu lieu).

Vous pouvez toujours capturer des événements de changement si tel est le cas en utilisant live

$(document).ready(function() { 
    $('#status select').live('change', function() { 
     alert("Change Event Triggered On:" + $(this).attr("value")); 
    }); 
}); 

Notez que depuis 1,7 Cependant, la méthode on() est le moyen privilégié pour lier les gestionnaires d'événements. L'équivalent de ce qui précède est;

$(document).ready(function() { 
    $(document).on('change', '#status select', function() { 
     alert("Change Event Triggered On:" + $(this).attr("value")); 
    }); 
}); 
+0

Je l'ai mis au travail, merci. Cependant, cet événement ne bulle pas dans IE pour une raison quelconque. Pensées? –

+0

jQuery devrait le faire ainsi. Quel code utilisez-vous qui ne fonctionne pas? – Matt

+0

@Matt: J'utilise le code que vous avez fourni - il fonctionne bien dans d'autres navigateurs sauf IE8. –

Questions connexes