为什么将真实值呈现为“值”?

时间:2019-05-10 04:25:42

标签: pug

我有:

input(type="hidden" name="x" value=pax?pax.C1a:undefined)

当传递给pax的{​​{1}}为response.render时,输出呈现为:

{ C1a: true }

难道不是“真实”吗?

<input type="hidden" name="x" value="value" /> 为假时,将其呈现为:

pax.C1a

1 个答案:

答案 0 :(得分:2)

来自HTML5 spec

  

许多属性是布尔属性。元素上存在布尔属性表示真实值,而缺少该属性则表示假值。

     

如果存在该属性,则其值必须为空字符串或该属性的规范名称的ASCII大小写不匹配的值,且没有前导或尾随空格。

     

注意: 布尔属性不允许使用值“ true”和“ false”。

<input type="hidden" name="x" value="value" />是我引用的第二段中提到的第二种情况;第一种情况是<input type="hidden" name="x" value />,都代表真正的布尔值。该注释明确指出应该 不应该发生的事情(value="true"

如果您确实需要value="true",则必须将其视为文本属性,并使用{ C1a: "true" }进行渲染。