【发布时间】:2012-03-07 00:28:24
【问题描述】:
不知道为什么会这样,但是通过 JS(使用 JQuery)提交表单后,它并没有重置。
_problem_form.erb
<%= form_for [@industry, @problem], "id" => "problem_form", :remote => true do |f| %>
//fields
<% end %>
create.js.erb
<% if @problem.errors.any? %>
$("#errors").html("<%= escape_javascript(render :partial => 'layouts/error_messages', :locals => {:object => @problem })%>");
<% else %>
$("#problem_form_area").html("<%= escape_javascript(render :partial=> 'problems/problem_form') %>");
$(".problem_area").html("<%= escape_javascript(render @problems) %>");
$("#problem_form")[0].reset();
<% end %>
POST 请求已发送,我可以看到一切正常更新。表格只是没有重置。
真正奇怪的是,通常在一个成功的 POST 之后,所有的资产都会被获取。但是,这一次,服务器只是挂在了
在 132 毫秒内完成 200 次 OK(查看次数:88.0 毫秒 | ActiveRecord:2.5 毫秒)
并且日志没有表明对我的 CSS 或 JS 文件有任何 GET。
附带说明,如果我再次单击提交按钮(在第一次 POST 之后并且没有刷新页面),我会收到以下消息:
在 2012 年 3 月 6 日开始为 127.0.0.1 放置“/industries/1/problems/71” 18:49:51 -0500
AbstractController::ActionNotFound(动作“更新”不能 为 ProblemsController 找到):
渲染 /Users/hansy/.rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.1.1/lib/action_dispatch/middleware/templates/rescues/unknown_action.erb 在救援/布局内(0.6ms
所以,不知道为什么我的表单将方法从 POST 转换为 PUT。
有什么建议吗?
【问题讨论】:
-
什么是#problem_form_area?您不需要将@problem 发送到
$("#problem_form_area").html(" 'problems/problem_form') %>");吗?
标签: jquery forms ruby-on-rails-3.1