I have this form
<div id="login">
<h4>Please log in with your email address</h4>
<%= form_for(@user, id: "login", remote: true) do |f| %>
<% if @user.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@user.errors.count, "error") %> prohibited this user from being saved:</h2>
<ul>
<% @user.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :name %><br />
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :email %><br />
<%= f.text_field :email %>
</div>
<div class="field">
<%= f.label :company %><br />
<%= f.text_field :company %>
</div>
<div class="field">
<%= f.label :phone %><br />
<%= f.text_field :phone %>
</div>
<div class="field">
<%= f.label :address %><br />
<%= f.text_field :address %>
</div>
<div class="actions">
<%= f.submit id: "signup_submit" %>
</div>
<% end %>
<script>
$("#signup_submit").bind("ajaxSend", function(){
alert('start');
}).bind("ajaxComplete", function(){
alert('end');
});
</script>
</div>
So I have data-remote set to true, and I am having a hard time displaying the errors that otherwise work when it degrates to HTTP requests.
I am sure this is simple and would appreciate any help.
Thanks.
First reorganize this so that the
error_explanationdiv exists on the page (so you can populate it with an error message… hide it with CSS if you need to)Then you can add this bit of jQuery code to your existing
<script>tag area:And then this assumes that you have something like this in your controller response for the error: