我想要发生的是成功创建帐户后,提交的表单应该消失并且应该出现一条消息(取决于注册的状态)。
如果成功,他们应该会看到一个简单的“谢谢。请检查您的电子邮件”。
如果不是,那么他们应该会看到一条适当的消息 - 例如“抱歉,该电子邮件已被占用”。
这是我的表格:
<div class="nine columns offset-by-three sign-up-form">
<%= form_for(resource, :as => resource_name, :class => "send-with-ajax", :url => user_registration_path(resource), :validate => true, :html => { :id => 'user_new' }) do |f| %>
<div class="six columns alpha">
<%= f.text_field :email, :placeholder => "your-email@address.com", :input_html => {:autofocus => true}, :validate => true %>
</div>
<div class="three columns sign-up alpha">
<%= f.submit :label => "Submit", :value => "Sign Me Up!" %>
<div class="ajax-response"><%= devise_error_messages! %></div>
</div>
<% end %>
</form>
</div>
这是我的create.js.erb
:
$(document).ready(function() {
$('#user_new').submit(function() {
$(this).fadeOut(600).hide();
$(this).append('<h3>Thank You. You should receive an email shortly.</h3>').fadeIn(1000);
});
)}
但这不能正常工作。例如,当我按下提交并且电子邮件地址已经在数据库中时 - 没有任何反应。
PS我知道如果它是一个“常规”表单,我会format.js
在处理这个表单的控制器中做 - 并在那里计算状态代码和消息 - 但设计是一个不同的野兽,我不想生成新的当我不完全舒服时,控制器和覆盖我不应该的功能。