【发布时间】:2019-03-09 10:57:02
【问题描述】:
我在 `bootstrap modal 中有一个表单:
<div class="modal fade" id="form_modal" tabindex='-1'>
<%= simple_form_for @detail_question, remote: true do |f| %>
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Question</h4>
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
</div>
<div class="modal-body">
<%= f.error_notification %>
<div class="form-inputs">
<span> <span id="characterLeft"></span>.</span>
<%= f.input :content, label: false %>
</div>
<div id="formModal">
<%= render partial: 'layouts/messages' %>
</div>
</div>
<div class="modal-footer">
<%= f.button :submit, "Ask", class:" btn btn-primary" %>
</div>
</div>
</div>
<% end %>
</div>
控制器创建方法:
def create
@detail_question = DetailQuestion.new(question_params)
respond_to do |format|
if @detail_question.save
flash.now[:success] = "Question was successfully sent!"
format.js { render 'create.js.erb' }
else
flash.now[:alert] = "Something went wrong!"
format.js { render 'create.js.erb' }
end
end
end
create.js.erb
<% if @detail_question.save %>
$("#flash").html("<%= escape_javascript(render partial: 'layouts/messages') %>");
$("#detail_questions_<%= @detail_question.product.id %>").html("<%= escape_javascript(render partial: 'detail_questions/detail_questions', locals: { product: @detail_question.product } ) %>");
<% else %>
$("#formModal").html("<%= escape_javascript(render partial: 'layouts/messages') %>");
<% end %>
当我提交表单时,模式会关闭并创建问题,呈现 Flash 消息,并且还会呈现部分内容,就像它假设的那样。但我遇到的唯一错误......是页面加载为不可点击和空闲,请看下面的图片。
知道我做错了什么吗?
【问题讨论】:
-
js控制台有错误吗?您的 Rails 服务器日志中有什么内容用于创建操作?
-
感谢@Vasilisa 的回复,不,绝对没有……这是奇怪的部分,它应该完全渲染部分。知道可能出了什么问题吗?
-
嘿@Vasilisa,你认为这个问题是因为turbolinks吗?
-
不确定。尝试从
create.js中删除所有内容并仅保留alert('It works')行 -
我做到了,并且在我提交表单时确实显示了警报。
标签: ruby-on-rails ajax