У меня есть простая запись электронной почты, в которой должно отображаться уведомление «Электронная почта не может быть пустой или недействительной», когда пользователь нажимает кнопку «Отправить», а электронная почта является пустой или недействительной.Мне удалось заставить это работать, поэтому уведомление выскакивает как раз над формой ввода электронной почты.Но я хочу, чтобы сообщение об ошибке находилось непосредственно над формой ввода электронной почты, а затем исчезало.Я искал разные фрагменты затухания, и все кажется очень простым - так чего мне не хватает?Ценю любую помощь.
это в помощнике приложения:
def show_flash_message(options={})
html = content_tag(:div, flash.collect{ |key,msg| content_tag(:div, msg, :class => key) }, :id => 'flash-message')
if options.key?(:fade)
html << content_tag(:script, "setTimeout(\"new Effect.Fade('flash-message');\",#{options[:fade]*1000})", :type => 'text/javascript')
end
html
end
это в макете: <% = javascript_include_tag: все%>
Этонаходится в представлении: <% - flash.each do | flash_type, message |-%> <% = content_tag: div, message,: class => "flash # {flash_type}"%> <% content_tag: script,: type => "text / javascript" do%> setTimeout ("$$ ('div.flash '). each (function (flash) {flash.hide ();}) ", 1000);<% end%> <% - end -%>
<div class="inputs" style="margin-left:30px">
<%= f.text_field :email, :value => 'Please enter your email.', :onfocus => "if(this.value==this.defaultValue) this.value=''; this.style.color = '#333333'", :onblur => "if(this.value=='') this.value=this.defaultValue;this.style.color = '#aaaaaa'"%>