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

因为它呈现这个:

&lt;input type="checkbox" name="completed" checked="" class="checkbox"&gt;

而不是这个:

&lt;input type="checkbox" name="completed" class="checkbox"&gt;

如何让 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 中检查和取消选中复选框的其他条件

如何获得未选中的复选框值。?有身份证条件。?

列表视图Item.Selected = false导致未选中所有复选框

基于复选框选中/未选中的文本框值

如果选中其他复选框,如何创建一个未选中其他复选框的无复选框

如果复选框选中禁用其他,如果未选中启用所有 JavaScript?