根据条件(if)取消选中Jade复选框选中的属性

jst*_*s13 23 javascript node.js express pug

如何让jade根据条件呈现复选框的checked属性?像这两个版本的HTML复选框标记:

这似乎是未经检查的唯一有效版本:

>  <input type="checkbox" name="vehicle" value="Bike">
Run Code Online (Sandbox Code Playgroud)

这是检查:

> <input type="checkbox" name="vehicle" value="Car" checked="checked">
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止所尝试的:

这玉很好:

    input(type="checkbox", name="completed", checked=(true===true ? "checked" : "")).checkbox
Run Code Online (Sandbox Code Playgroud)

因为它呈现了这个:

<input type="checkbox" name="completed" checked="checked" class="checkbox">
Run Code Online (Sandbox Code Playgroud)

但这玉不好

    input(type="checkbox", name="completed", checked=(false===true ? "checked" : "")).checkbox
Run Code Online (Sandbox Code Playgroud)

因为它呈现了这个:

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

而不是这个:

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

如何让Jade呈现整个checked属性而不仅仅是已检查attibute的值?

Mic*_*Yin 61

您可以使用:

input(type="checkbox", name="completed", checked=(true===false ? "checked" : undefined))
Run Code Online (Sandbox Code Playgroud)


Vla*_*hev 16

无需指定值:

input(type="checkbox", name="completed", checked=(condition))
Run Code Online (Sandbox Code Playgroud)

如果condition为false,则不会添加checked属性.

  • 不,如果条件为假、空或未定义,则“已检查”将被忽略 (2认同)