2012-05-24 7 views
6

Ich habe ein paar Kontrollkästchen und eine Status-Box, die Ihnen sagt, ob mindestens 1 der Kontrollkästchen aktiviert ist.jQuery ist attr Update auf Kontrollkästchen löst keine Änderung Ereignis

Ich habe auch eine Check-Checkbox Alle/Keine, die die Checkboxen umschaltet, aber nicht das Änderungsereignis auslöst, das den Checkboxen zugewiesen ist, so dass der Status nie aktualisiert wird, wenn das Kontrollkästchen Alle/Keine aktiviert ist .

Hier ist meine Implementierung:

http://jsfiddle.net/axl163/Fckvd/1/

Antwort

13
function toggleChecked(status) { 
    $(".chkbx").each(function() { 
     $(this).prop("checked", status).change(); // you have to trigger the event 
    }); 
} 

DEMO

+0

Ah! Danke für die Hilfe! –

+0

Ja ich weiß =) Leider gibt es ein 10 Minuten Limit, dass ich warten muss, bevor ich irgendwelche Antworten annehmen kann. –

+1

@AllenLiu Das ist nicht unglücklich .. es ist im Grunde, OP einige Zeit zu geben, um andere Antworten zu überprüfen .. und es ist nur 10 Minuten :) –

5

Alle Änderungen an einem Eingangselement durch ein Skript NICHT onchange Ereignis auslösen.

Alternativ können Sie die change() auslösen, während die Änderung der Eingabe wie unter Aktualisieren

$(this).prop("checked", status).change(); 

Voll Code:

function toggleChecked(status) { 
    $(".chkbx").each(function() { 
     $(this).prop("checked", status).change(); 
    }); 
} 

Auch .prop anstelle von .attr

DEMO

+0

Danke für die Lösung =) –

Verwandte Themen