затухание в ruby ​​(flash: note) не работает должным образом - PullRequest
0 голосов
/ 08 июля 2010

У меня есть простая запись электронной почты, в которой должно отображаться уведомление «Электронная почта не может быть пустой или недействительной», когда пользователь нажимает кнопку «Отправить», а электронная почта является пустой или недействительной.Мне удалось заставить это работать, поэтому уведомление выскакивает как раз над формой ввода электронной почты.Но я хочу, чтобы сообщение об ошибке находилось непосредственно над формой ввода электронной почты, а затем исчезало.Я искал разные фрагменты затухания, и все кажется очень простым - так чего мне не хватает?Ценю любую помощь.

это в помощнике приложения:

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'"%> 

1 Ответ

1 голос
/ 09 июля 2010

Похоже, вы используете Prototype из своего действия $$.Вы должны проверить Scriptaculous эффект исчезновения:

http://wiki.github.com/madrobby/scriptaculous/effect-fade

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...