我可以在表单中以 = simple_form_for @widget, :url=> template_save_widget_manager_template_url(id:widget.id),:format => :js, remote: true do |f|
= f.input :title, label: "Titre ?"
= f.input :active, label: "Titre ?"
= f.input :where, label: "Ou souhaitez-vous afficher ce bloc ?", collection: @where
= f.button :submit, class:'btn btn-primary'
- content_for :script do
javascript:
$(document).ready(function(){
$("#new_clan_templates_widgets_build").on("ajax:success", function (e, data, status, xhr){
alert('test');
});
})
提交表单,并由ajax成功发送。但是我希望用JS显示响应(成功或错误),但我不能。
这是我的表格+ JS:
render false
在我的控制器中,我有juste添加{{1}}。
javascript代码不起作用,为什么?
答案 0 :(得分:0)
this is my code for creating a post with remote
<div class="row">
<div class="col-md-6">
<%= form_for(@blog, html: {role: 'form'}, remote: true) do |f| %>
<% if @blog.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@blog.errors.count, "error") %> prohibited this blog from being saved:</h2>
<ul>
<% @blog.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="form-group">
<%= f.label :title %><br>
<%= f.text_field :title, class: "form-control" %>
</div>
<div class="form-group">
<%= f.label :content %><br>
<%= f.text_area :content, class: "form-control" %>
</div>
<%= f.hidden_field :user_id, value: current_user.id %>
<%= f.submit nil, class: "btn btn-primary" %>
<% end %>
</div>
</div>
and this is my create action in controller
def create
@blog = Blog.new(blog_params)
respond_to do |format|
if @blog.save
format.html { redirect_to @blog, notice: 'Blog was successfully created.' }
format.json { render :show, status: :created, location: @blog }
format.js{}
else
format.html { render :new }
format.json { render json: @blog.errors, status: :unprocessable_entity }
format.js { }
end
end
end
this is response file after success
<% if @blog.new_record? %>
alert('errors');
<% else %>
alert('post created successfully');
window.location = '<%= blog_path(@blog) %>'
<% end %>
答案 1 :(得分:0)
好的,现在正在运作。这是解决方案:
我已加入我的控制器
class ExampleController < ApplicationController
layout proc{|c| c.request.xhr? ? false : "application" }
def create
respond_to do |format|
format.js { render :layout => !request.xhr? }
end
end