如何显示表单字段高亮未能在Rails的3.1验证错误的字段? 我知道,自动生成脚手架的CSS和控制器代码来处理这个问题,但我想知道是否有手动生成的一种方式。 我已经执行过错误消息的字符串显示:@ user.errors.full_messages.each ...等,但我不能让字段以红色突出显示。 有任何想法吗?
谢谢。
如何显示表单字段高亮未能在Rails的3.1验证错误的字段? 我知道,自动生成脚手架的CSS和控制器代码来处理这个问题,但我想知道是否有手动生成的一种方式。 我已经执行过错误消息的字符串显示:@ user.errors.full_messages.each ...等,但我不能让字段以红色突出显示。 有任何想法吗?
谢谢。
假设你有一个错误类在你的CSS文件中的字段:
<% if @user.errors[:name] %>
<%= f.label :name, :class => "error" %>
<% else %>
<%= f.label :name %>
<% end %>
这是你想要的吗?
另外 : 这里有一个关于自定义默认的ActiveRecord验证CSS部分。
编辑:( 约额外IFS)
# app/helpers/application_helper.rb
def field_class(resource, field_name)
if resource.errors[field_name]
return "error".html_safe
else
return "".html_safe
end
end
然后:
# in your view
<%= f.label :name, :class => field_class(@user, :name) %>
<%= f.label :password, :class => field_class(@user, :password) %>
[...]
(我可能犯了一个错误在那里-我正在写在手机上-但你得到的总体思路可以以许多方式=无穷代码这一点,所以做你喜欢的方式......)
现在导轨有一个很好的把戏其sleeve..When一个error
发生轨道把一个div
与类.field_with_errors
周围的错误域。 所以,现在你可以定位类,并添加样式。
专注于你可以做输入
.field_with_errors input{
border: 1px solid red !important;
}
这个CSS会放一个漂亮的红线围绕input
要素,而important!
将覆盖现有的样式。
我不得不这样做(resource.errors [FIELD_NAME]。长度> 0)来得到它的工作:
DEF field_class(资源,FIELD_NAME)如果resource.errors [FIELD_NAME]。长度> 0返回 “custom_error1” .html_safe否则返回 “” .html_safe端端