ruby - rails的表单验证后格式错乱问题
天蓬老师
天蓬老师 2017-04-21 11:15:23
[Ruby讨论组]

举个例子,在表单中有这样的内容:

    <dl>                                                                                                                                                                                                                                                                        
      <dt>
        <%= f.label :subject %>
      </dt>
      <dd>
        <%= f.text_field :subject %>
      </dd>
    </dl>

在浏览器中显示成:

■Subject

(※注:■由CSS生成)

如果对表单进行验证,验证后再显示的格式就乱了,变成这样:

■
Subject

为什么会错位呢?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(1)
天蓬老师

You should override ActionView::Base.field_error_proc. It's currently defined as this within ActionView::Base:

 @@field_error_proc = Proc.new{ |html_tag, instance| 
   "<p class=\"field_with_errors\">#{html_tag}</p>".html_safe
 }

You can override it by putting this in your application's class inside config/application.rb:

config.action_view.field_error_proc = Proc.new { |html_tag, instance| 
  "#{html_tag}".html_safe 
}

Restart rails server for this change to take effect.

(全文抄袭自 http://stackoverflow.com/questions/5267998/rails-3-field-with-errors-wrapper-changes-the-page-appearance-how-to-avoid-t)


当然,更推荐改成这样

config.action_view.field_error_proc = Proc.new do |html_tag, instance|
  class_attr_index = html_tag.index 'class='

  if class_attr_index
    html_tag.insert class_attr_index+7, 'error '
  else
    html_tag.insert html_tag.index('>'), ' class="error"'
  end
end
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号