2010-03-29 4 views
5

Ich verwende Jeditable für In-Place-Bearbeitung. Eines der Steuerelemente, mit denen ich arbeite, hat den Typ select. Wenn ein Benutzer auf dem Feld klickt, wird die folgende select Steuerung erzeugt:jQuery + Jeditable - erkennen, wenn Auswahl geändert wird

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

Was ich versuche, ist, herauszufinden, wie jQuery zu verwenden, um festzustellen, wann die select Steuerung geändert wird, vor allem, da sie nicht über ein ID-Attribut

Das ist, was ich bisher, aber das Ereignis nicht ausgelöst zu werden:

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

UPDATE

Update auf jQuery 1.4.2 mein Problem gelöst zusammen mit der Verwendung von Matts Lösung.

Antwort

7

Sie finden es wahrscheinlich, weil das Auswahlfeld der Seite hinzugefügt wurde, nachdem es geladen wurde (und nachdem Ihre Ereignisbindungen stattgefunden haben).

können Sie noch Änderungsereignisse erfassen, wenn dies der Fall ist live unter Verwendung

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

Beachten Sie, dass aber seit 1,7, die on() Verfahren der bevorzugte Weg ist Event-Handler zu binden. Das Äquivalent des obigen ist;

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

Habe es zur Arbeit, danke. Dieses Ereignis bläst jedoch aus irgendeinem Grund nicht in IE. Gedanken? –

+0

jQuery sollte es so machen. Welchen Code benutzen Sie, der nicht funktioniert? – Matt

+0

@Matt: Ich verwende den von Ihnen angegebenen Code - er funktioniert in anderen Browsern außer IE8. –