2016-11-17 2 views
-2

Ich möchte in der Lage sein, Kontrollkästchen auszuwählen, bei denen der überprüfte Wert nicht mit einem Attributwert übereinstimmt.Wählen Sie zwei unterschiedliche Attribute aus

So kann ich <input type="checkbox" originalValue="false" checked="checked"> oder <input type="checkbox" originalValue="true"> so jetzt der Benutzer es nicht markiert und so ist es anders.

Ich habe vielleicht ein paar tausend davon auf einer Seite, also möchte ich nur diejenigen, die der Benutzer von ihrem ursprünglichen Wert geändert hat. Ursprünglich wurde das Kontrollkästchen aktiviert, dann wurde die Auswahl aufgehoben.

Oder wenn es markiert war, dann haben sie es deaktiviert, und dann erneut überprüft, dann will ich dieses Kontrollkästchen nicht.

Gibt es einen eleganten jQuery Weg, dies zu tun?

+4

Ich bin ziemlich überrascht, dass jemand mit Ihrem rep eine Frage ohne Code Ihre Versuche geschrieben hat zu zeigen, auf die Lösung das Problem? – melancia

+0

Es tut mir leid, aber warum ist das zu breit? Scheint ziemlich spezifisch für mich. Aktivieren Sie die Kontrollkästchen, wenn der überprüfte Wert nicht mit einem Attribut übereinstimmt. – griegs

+0

Wenn Sie viele Möglichkeiten haben, eine Lösung zu codieren, kann ich sie als zu breit einstufen, oder? Wenn Sie uns geben, mit was Sie kämpfen (Code), wäre es einfacher, etwas einzugrenzen. – melancia

Antwort

2

Es gibt immer eine elegante Weise, Dinge zu tun - filter verwenden und die Gegensätze herausfiltern:

var changedElements = $("input:checkbox").filter(function() { 
    var originalValue = $(this).attr("originalValue"); //unsure if this is auto-parsed to a bool, will have to check 
    var originalBoolValue = originalValue === "true"; 

    return originalBoolValue != this.checked; 
}); 
+0

Danke. Wenigstens hast du die Frage verstanden – griegs

+0

Das funktioniert absolut perfekt danke. – griegs

Verwandte Themen