Rails将div添加到通过验证的表单字段,例如" fields_with_errors" div失败

时间:2016-02-10 11:14:35

标签: html css ruby-on-rails ruby ruby-on-rails-4

我想将样式应用于成功验证字段以及失败字段

我正在使用 fields_with_errors div,该div应用于验证失败的表单元素周围。我想扩展此行为以在成功验证的字段周围应用 fields_without_errors 样式化div。

例如,当rails验证字段时,渲染视图返回如下:

<div class="field_with_errors"><input class="input" size="30" type="text" value="" name="seller_profile[business_phone_number]" id="seller_profile_business_phone_number"></div>

原始的erb代码是:

<div class="row">
        <label for="telephone">Company telephone</label>
        <br />
       <%=f.text_field :business_phone_number, :class=>"input", size:"30" %>
        <div class="errors">
        <%if @profile.errors[:business_phone_number].any? %>
        Phone number <%= @profile.errors[:business_phone_number].join(", ")%>
        <% end %>
        </div>
        <br />
      </div>

这非常有效。但是对于已通过验证的字段,它们不会被包含在div中,表明验证已通过。

我希望通过验证的字段如下所示:

 <div class="field_without_errors"><input class="input" size="30" type="text" value="" name="seller_profile[business_description]" id="seller_profile_business_description"></div>

即,它们被包含在一个带有&#34; field_without_errors&#34;类的div中。是否有办法在rails中添加此行为?

1 个答案:

答案 0 :(得分:-1)

我只想用css执行此操作:确保如果为已经过测试验证的对象渲染表单,则在表单中添加一个类,例如&#34;已验证&#34 ;例如。 Rails可能已经这样做了。

然后,您可以为此类中的表单中的字段添加样式规则,这些字段在验证失败的情况下(即具有由rails添加的错误类)(或者只是坚持使用rails&#39;自己的默认规则),并覆盖这些没有错误类的输入规则:这些规则将应用于未失败的输入。