2013-01-03 6 views
21

Wie bekomme ich Jade, um das überprüfte Attribut eines Kontrollkästchens basierend auf einem bedingten zu rendern? Wie diese beiden Versionen des HTML-Checkbox tag:Jade checkbox checked Attribut nicht aktiviert basierend auf bedingten (wenn)

Dies scheint die einzige gültige Version nicht markiert zu sein:

> <input type="checkbox" name="vehicle" value="Bike"> 

Während diese Option aktiviert ist:

> <input type="checkbox" name="vehicle" value="Car" checked="checked"> 

Hier ist, was ich bisher versucht habe:

Diese Jade ist in Ordnung:

input(type="checkbox", name="completed", checked=(true===true ? "checked" : "")).checkbox 

, weil es dies macht:

<input type="checkbox" name="completed" checked="checked" class="checkbox"> 

aber Jade ist nicht in Ordnung:

input(type="checkbox", name="completed", checked=(false===true ? "checked" : "")).checkbox 

, weil es diese macht:

<input type="checkbox" name="completed" checked="" class="checkbox">

statt dessen:

<input type="checkbox" name="completed" class="checkbox">

Wie erhalte ich Jade das gesamte Attribut checked anstatt nur den Wert des geprüften attibute zu machen?

Antwort

58

können Sie verwenden:

input(type="checkbox", name="completed", checked=(true===false ? "checked" : undefined)) 
+0

WOW versuchen - Das funktionierte! Vielen Dank! – jstevens13

+0

Danke für die Antwort – Erik

14

Keine Notwendigkeit, die Werte angeben:

input(type="checkbox", name="completed", checked=(condition)) 

Wenn die Bedingung falsch ist, gibt es kein Attribut checked hinzugefügt wird.

+0

Arbeitete perfekt! – Nocturno

+0

checked = false wird immer noch überprüft? –

+1

Nein, wenn die Bedingung false, null oder undefined ist, dann wird "checked" ignoriert –

0

Ein anderer Weg, um die gleiche Sache zu tun ist durch ‚if‘ Bedingung:

if(#{data.refrigerated} == '1') 
    input(type='checkbox', name='refrigerated', checked) 
else 
    input(type='checkbox', name='refrigerated') 

Wenn Bedingung wahr sein wird, werden Sie überprüft Checkbox auf DOM erhalten Sie sonst nicht aktiviert Kontrollkästchen erhalten.

0

können Sie wie folgt

option(value='man' selected = profile.sex ==='man') man 
    option(value='female' selected = profile.sex ==='female') female 
Verwandte Themen