【问题标题】:What is the proper way to use JADE, attribute "placeholder" and an input field?使用 JADE、属性“占位符”和输入字段的正确方法是什么?
【发布时间】:2023-03-22 14:38:01
【问题描述】:

我正在 node.js 环境中使用翡翠引擎构建一个表单,并开始考虑在输入元素中结合“占位符”和“值”属性的最佳实践(AKA 更少的代码)。

form(action="/add" method="POST")
    input(placeholder="Your name" name="username" value="#{username}")
    input(placeholder="Your title" name="title"  value="#{title}")

但是,有时会填充 #{username},有时则不会。如果它没有被填充,它将被翡翠替换为“未定义”,并且我的“占位符”属性永远不会生效。

那么,jade 是否有一个设置,所以所有未定义的变量都返回一个空字符串或类似的解决方案?

假设表单有大约 10-15 个字段,我希望不必对每个输入元素创建条件检查。

【问题讨论】:

    标签: node.js express pug


    【解决方案1】:
    input(placeholder="Your name" name="username" value=username)
    

    【讨论】:

    • 这是否解决了它有时不会被填充的问题?
    • 如果它不会被填充(这意味着它将是未定义的),那么value 甚至将不存在。所以,是的,我认为它可以解决它。问题是#{...} 就像是显式转换为字符串,但它并不是你想要的。
    • 但是属性的值总是一个字符串。我不明白为什么#{} 的行为与正常分配具有字符串内容的变量不同。
    • 属性的值总是一个字符串。它可以是布尔值(即required)。
    • 另外,我们在这里讨论的是javascript变量,而javascript变量并不总是一个字符串。 Jade 还可以识别“null”/“undefined”/“false”(值不会出现)和“true”(扩展为“value”=“value”,对复选框很有用)。
    猜你喜欢
    • 2013-01-17
    • 1970-01-01
    • 2016-02-12
    • 2020-12-13
    • 1970-01-01
    • 2013-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多