You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rails中html.erb模板HTML input值空格后内容丢失问题求助

解决Rails erb模板中输入框value值空格后丢失的问题

这问题我之前开发时也踩过同款坑!核心原因就是HTML属性值没有用引号包裹,导致浏览器解析时出错了。

你看,你写的代码是:

<% all = "All value" %>
<input type="text" name="name" id="name" value=<%= all %>>

渲染后会变成:

<input type="text" name="name" id="name" value=All value>

在HTML语法里,属性值如果包含空格、特殊字符,必须用双引号(或单引号)包裹。浏览器看到value=All value时,会把All当成value的属性值,后面的value会被当成无效的多余内容直接忽略,所以就出现了只显示All的情况。

两种解决办法:

  • 手动给属性值加引号:把代码改成这样,给value的赋值部分加上双引号:

    <% all = "All value" %>
    <input type="text" name="name" id="name" value="<%= all %>">
    

    这样渲染后就会得到你想要的结果:

    <input type="text" name="name" id="name" value="All value">
    
  • 使用Rails内置的表单Helper(更推荐):用text_field_tag来生成输入框,它会自动帮你处理属性的引号和特殊字符转义,代码更简洁安全:

    <% all = "All value" %>
    <%= text_field_tag :name, all, id: "name" %>
    

    这个Helper渲染出来的HTML和上面手动写的正确结果完全一致,而且如果你的all变量里包含引号、尖括号这类特殊字符,它还会自动转义,避免XSS风险。

内容的提问来源于stack exchange,提问作者Ninh Le

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 22:47:48