2013-01-03 71 views
21

如何讓玉得到基於條件的複選框的選中屬性? 像HTML複選框標籤的這兩個版本:玉的複選框檢查屬性取消選中基於條件(if)

這似乎是不受控制的唯一有效的版本:

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

雖然這是檢查:

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

這是我到目前爲止所嘗試的:

這玉是罰款:

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

,因爲它呈現這樣的:

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

但玉不罰款:

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

,因爲它呈現這樣的:

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

,而不是這樣的:

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

如何讓玉使整個檢查屬性,而不是檢查attibute的只是價值?

回答

58

您可以使用:

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

WOW - 這工作!謝謝! – jstevens13

+0

感謝您的回答 – Erik

14

無需指定值:

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

如果條件爲假,也沒有檢查屬性將增加。

+0

完美工作! – Nocturno

+0

checked = false仍顯示已檢查? –

+1

不,如果條件爲false,爲空或未定義,則「checked」將被忽略 –

0

另一種方式做同樣的事情是「如果」條件:

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

當條件將是真實的,你將得到選中的複選框,否則你會得到未選中的複選框。

0

你可以嘗試這樣的

option(value='man' selected = profile.sex ==='man') man 
    option(value='female' selected = profile.sex ==='female') female 
相關問題