【问题标题】:Jade checkbox checked attribute unchecked based on conditional (if)Jade 复选框选中属性未选中基于条件(如果)
【发布时间】: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 呈现整个选中的属性,而不仅仅是选中的属性的值?

【问题讨论】:

    标签: javascript node.js express pug


    【解决方案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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-10-06
        • 2021-12-24
        • 2012-03-06
        • 2015-12-06
        • 2020-04-26
        • 2014-04-24
        • 2017-01-25
        • 1970-01-01
        相关资源
        最近更新 更多