【问题标题】:Invalid characters in label_taglabel_tag 中的字符无效
【发布时间】:2008-11-06 19:24:24
【问题描述】:

我在 ERB 中构建了一个简单的表单,但是 text_field 标记生成的 HTML 使 label 标记中的 for 属性无效。

<div>
  <p><%= label_tag "email[name]", "Name" %></p>
  <%= text_field :email, :name, :class => "text_field" %>
</div>

生成 HTML

<div>
  <p><label for="email[name]">Name</label></p>
  <input class="text_field" id="email_name" name="email[name]" size="30" type="text" />
</div>

这会导致错误

字符“[”不允许在 属性“for”的值。

如何生成没有嵌套参数名称 email[name] 的文本来更改标签标签 for 属性?是否有其他方法可以生成有效的 HTML?

【问题讨论】:

    标签: ruby-on-rails erb


    【解决方案1】:

    for 属性应该引用作为标签的元素的 ID 属性,而不是其名称。

    因此,你不需要:

    <div>
      <p><%= label_tag "email_name", "Name" %></p>
      <%= text_field :email, :name, :class => "text_field" %>
    </div>
    

    ...?

    【讨论】:

      【解决方案2】:

      将其从引号中取出,或者将 div 内容生成为字符串并将其添加到 div.innerHTML

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-09-02
        • 2017-02-02
        • 2021-07-22
        • 2013-03-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多