Jade 复选框选中属性未选中基于条件(如果)
Posted
技术标签:
【中文标题】Jade 复选框选中属性未选中基于条件(如果)【英文标题】:Jade checkbox checked attribute unchecked based on conditional (if) 【发布时间】:2012-12-18 08:07:25 【问题描述】:如何让jade根据条件渲染复选框的选中属性? 就像这两个版本的 html 复选框标记:
这似乎是 unchecked 的唯一有效版本:
> <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">
如何让 Jade 呈现整个选中的属性,而不仅仅是选中的属性的值?
【问题讨论】:
【参考方案1】:你可以使用:
input(type="checkbox", name="completed", checked=(true===false ? "checked" : undefined))
【讨论】:
感谢您的回答【参考方案2】:无需指定值:
input(type="checkbox", name="completed", checked=(condition))
如果条件为假,则不会添加选中的属性。
【讨论】:
否,如果条件为假、空或未定义,则“已检查”将被忽略【参考方案3】:做同样事情的另一种方法是通过'if'条件:
if(#data.refrigerated == '1')
input(type='checkbox', name='refrigerated', checked)
else
input(type='checkbox', name='refrigerated')
当条件为真时,您将在 DOM 上获得选中的复选框,否则您将获得未选中的复选框。
【讨论】:
【参考方案4】:你可以这样试试
option(value='man' selected = profile.sex ==='man') man
option(value='female' selected = profile.sex ==='female') female
【讨论】:
以上是关于Jade 复选框选中属性未选中基于条件(如果)的主要内容,如果未能解决你的问题,请参考以下文章
如果在 jquery 和 codeigniter 中检查和取消选中复选框的其他条件