javascript - 使用 EJS 输入值无法正确显示

标签 javascript node.js ejs

下面是我的 node.js 应用程序使用 EJS 模板的客户端代码的一部分。有一个输入框,我想显示如果用户没有登录,则在输入框中显示消息。另外,输入框也应该不能。

但是它没有正确显示,如何显示整个语句,包括空格,不仅是“需要”,而且是“需要登录”?

<input type="text" <%= (isAuthenticated) ? '' : "value='Need to Login'" %> />

// view : 'Need
// It doesn't show after space

最佳答案

在 EJS 中 <%= foo %>转义 HTML,而 <%- foo %>没有。

就您而言,<%= "value='Need to Login'" %>将渲染value=&#39;Need to Login&#39; ,这不是您想要的。

替换 <%=<%-就可以了。

一般来说,使用 <%- 时要深思熟虑。 ,特别是在显示任意字符串或用户输入时,因为它可能使您容易受到 XSS 的攻击。 .

关于javascript - 使用 EJS 输入值无法正确显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35521090/

相关文章:

javascript - Heroku - 如何防止此错误?

javascript - jQuery 图像 slider - 奇怪的行为

javascript - 获取没有img标签的div的长度

ruby-on-rails - 轻松集成 socket.io 和 rails

javascript - 提交 POST 并在 Nodejs/EJS 中处理结果

javascript - 如何在不同的对象字段中查找重复值?

javascript - 使用node js连接SQL Server时出现问题?

javascript - Node.js 动态 JavaScript 执行性能

javascript - nodejs 无法设置未定义的属性 ''

javascript - 在 ejs 中使用保留字