通过Ajax提交表单时验证失败

时间:2018-08-23 06:13:55

标签: jquery ajax ruby-on-rails-5

我创建了一个带有remote => true选项的表单。通常,我使用客户端验证gem来处理错误。当我正常提交没有ajax客户端验证的表单时,它工作正常。当我使用remote => true(Ajax)提交表单时,验证不起作用。当我提供正确的输入时,我的ajax工作正常。但是当我输入失败的验证输入时,它不会显示任何错误。

我的创建动作是

def create
@post = @topic.posts.new(post_params)
@post.user=current_user
respond_to do |format|
  if @post.save
    flash[:notice] = "Post sent Successfully"
    format.html {redirect_to topic_post_path(id: @post.id)}
    format.js
else
    format.html {render :new}
    format.json { render json: @post.errors, status: :unprocessable_entity }
    format.js   { render layout: false, content_type: 'text/javascript' }
  end
end
end

create.js.erb是

$('#new_hide').fadeOut(1000)
$('#posts').empty();
$('.sort_paginate_ajax').append('<%= j render @post 
%>').ajaxSuccess(alert('you have created a post'))

我有ajax调用以在索引中创建新帖子为

<%= link_to "Add Post",new_topic_post_path,remote: true,id: "post"%>
<div class="row sort_paginate_ajax">
<%= render @posts %>
</div>

我的new.js是

$('#post').hide().after('<%= j render :partial => "formm", :locals => { :button_label => "Create Post", :topic => @topic ,:post => @post} %>')
$('#new_form').enableClientSideValidations();

我的部分表格是

<div id="form-modal">
<%= form_for [topic,post], validate: true,:html=> {multipart: true}, 
remote: true do |f| %>
<p>
<%= f.label :title %><br>
<%= f.text_field :title , validate: { presence: true } %></p>
<%= f.label :description %><br>
<%= f.text_area :description ,validate: true ,required: true%>
</p>
 <p>
<%= f.submit button_label, class: "btn btn-success",id: "submit" %>
 </p>
<% end %>
 </div>

我正在使用Rails 5.1.6和ruby 2.5.1p57

0 个答案:

没有答案