Ajax 如何在表单提交时显示验证错误
我有一个简单的表单,只有输入字段名,email。在我的查看页面上,我有一个表单,可以用ajax的方式输入和保存客户的电子邮件。这是我的查看页面: _form.html.erbAjax 如何在表单提交时显示验证错误,ajax,ruby-on-rails-3.2,Ajax,Ruby On Rails 3.2,我有一个简单的表单,只有输入字段名,email。在我的查看页面上,我有一个表单,可以用ajax的方式输入和保存客户的电子邮件。这是我的查看页面: _form.html.erb <%= form_for @customer, :remote=>true do |f| %> <div id="errors"></div> <%= f.text_field :email, :maxlength => 30, :p
<%= form_for @customer, :remote=>true do |f| %>
<div id="errors"></div>
<%= f.text_field :email, :maxlength => 30, :placeholder => "Email", :id => "ecustomer" %>
<%= f.submit "Save", :class => "btn btn-primary btn-large" %>
<% end %>
true do | f |%>
30,:占位符=>“电子邮件”,:id=>“ecustomer”%>
“btn btn主btn大”%>
这是我的create.js.erb
<% if @customer.errors.any? -%>
$('<%= escape_javascript(render :partial => "error", :locals => {:target => @customer })%>').appendTo('#errors')
<% else -%>
$("<%= escape_javascript(render @customer) %>").prependTo("table.table.customers tbody");
<% end -%>
$(''error',:locals=>{:target=>@customer})%>')。附录('#errors'))
$(“”).prependTo(“table.table.tbody”);
我已在电子邮件中验证存在性和唯一性。对于显示验证错误,我有部分,_error.erb:
<div class="alert alert-error">
<h5><%= pluralize(@customer.errors.count, "error") %> prohibited this user from being saved:</h5>
<ul>
<% @customer.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
禁止保存此用户:
但我的验证错误仍然不可见。我不明白这里出了什么问题。有人能帮我怎么让它工作吗
谢谢。尝试将Try-Catch块添加到JS视图:
<% if @customer.errors.any? -%>
try {
$('<%= j(render :partial => "error", :locals => {:target => @customer })%>').appendTo('#errors');
} catch( e ) {
console.log( e );
}
<% else -%>
try {
$("<%= j(render @customer) %>").prependTo("table.table.customers tbody");
} catch( e ) {
console.log( e );
}
<% end -%>
试一试{
$(''error',:locals=>{:target=>@customer})%>');
}捕获(e){
控制台日志(e);
}
试一试{
$(“”).prependTo(“table.table.tbody”);
}捕获(e){
控制台日志(e);
}
如果块未记录,则可能是处理语法错误。代码似乎正常,控制器是什么样子的?尝试在代码周围放置一个JS Try catch块来跟踪错误。。远程添加的JS不会显示错误。@Tim您能告诉我如何添加JS try catch块吗?我不知道。谢谢。在块中添加了一个答案。。