2017-05-30 2 views
0

Ich versuche, eine Tabelle mit Kontrollkästchen anhängen, aber die Eigenschaft checked muss auf eine andere Eigenschaft basieren:Anfügen Checkbox mit bedingter Eigenschaft checked

$.each(result.scenarios, function (i, scenario) { 
    table.append('<tr><td><label class="checkbox-inline"><input type="checkbox" value="' + scenario.Id + '" checked="' + scenario.Shared == true ? 'checked' : '' + '">' + scenario.Name + '</label><br></td></tr>'); 
}); 
+0

können Sie Probe Ergebnis hinzufügen – guradio

Antwort

1

Das Attribut checked ein boolean-Attribut ist, so können Sie fügen Sie das Attribut, indem Sie diesen Code verwenden: (scenario.Shared ? 'checked' : '')

$.each(result.scenarios, function (i, scenario) { 
    table.append('<tr><td><label class="checkbox-inline"><input type="checkbox" value="' + scenario.Id + '" ' + (scenario.Shared ? 'checked' : '') + '>' + scenario.Name + '</label><br></td></tr>'); 
}); 
+0

Beachten Sie, dass Sie benötigen keinen Wert auf das Attribut checked angeben. Der Hauptunterschied zwischen meinem und Ihrem Code besteht darin, dass meine keinen Wert für das geprüfte Attribut festlegt. – frosdqy

0

Sie Einstellung der Wert des checked Attribut. Sie müssen entweder das Attribut (ohne Wert) setzen oder nicht. Diese

:

checked="' + scenario.Shared == true ? 'checked' : '' 

würde in allen Kontrollkästchen aktiviert. Es ist, weil das checked Attribut dort ist. Der Wert des Attributs spielt keine Rolle. Solange es beim Rendern im HTML-Format vorhanden ist, wird es überprüft. Sollte

sein:

scenario.Shared ? 'checked' : '' 

keine Notwendigkeit, es zu dem Attribut zugewiesen werden soll.

Hier ist ein Stift: https://codepen.io/anon/pen/LyKbqm

Verwandte Themen