jquery - Rails 3.1 和 ajax 创建的表单不提交

标签 jquery ruby-on-rails ruby ajax ruby-on-rails-3.1

我正在尝试在 Rails 3.1 项目中创建内联编辑。我正在创建表单以通过 ajax 编辑副本,然后尝试通过 ajax 发送编辑。

但是表单不想绑定(bind)并且表单不会提交通过 ajax 创建的表单。

现在有人知道如何在表单创建后绑定(bind)

我使用 edit.js.erb 添加表单:

$("#nutri_<%= @nutritioninfo.id %>").after('<%= escape_javascript(render(:partial=>'admin/products/nutrition_edit',  :locals=>{:nutritioninfo=>@nutritioninfo}))%>');

部分是这样的:

$%tr.hidden.edit-nutri{ :class => cycle('odd', 'even', :name => "nutrition-hidden-rows"), :id=>"nutri_edit_#{nutritioninfo.id}" }
  = simple_form_for [:admin,site,product,nutritioninfo], :remote=>true do |f|
  %td &nbsp;
  %td= f.input :title,:label => false
  %td= f.input :parent_id, :as=>:select, :collection=>nutritioninfo.possible_parents,:label => false
  %td= f.input :per100g, :label => false
  %td= f.input :info, :label => false
  %td= f.input :highlight,:as=>:boolean, :label => false
  %td.edit= f.button :submit, t('admin.general.save').humanize
  %td.remove=link_to t('admin.general.cancel').humanize, "#", :remote => true, :class=>"cancel-toggle"

有人知道如何绑定(bind)表单吗?

最佳答案

可能没有什么问题。

首先,可能很明显,但您是否需要在 application.js 中使用 jquery_ujs?如果您没有对 remote: true 进行任何操作,则可能是原因。

其次,它甚至会触发表单提交吗?请记住,在使用 ajax 时,您必须使用“live()”而不是“bind()”或“action()”,因为每次重新加载表单时 live 都会对元素进行绑定(bind)(“bind”仅绑定(bind)一次操作)。

但是如果继续提交,而您没有任何响应,那么您可能必须像 Andre Dublin 所说的那样在 Controller 中实现 xhr 请求。

关于 ajax 的 Rails 艺术你可以引用 Using Unobtrusive JS and AJAX with Rails 3也许你应该看看In place editing RailsCast

关于jquery - Rails 3.1 和 ajax 创建的表单不提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7665646/

相关文章:

javascript - 每 5 秒重复在一个元素上运行一次 jQuery .click 事件

ruby-on-rails - Rails-api gem 分页

ruby - 需要帮助使用 ruby​​ nokogiri 对 xml 文件进行排序

ruby-on-rails - Phusion Passenger 不在 Apache 上工作

ruby-on-rails - RSpec 没有找到我的 View 助手

ruby-on-rails - 使用 Quickbooks ruby​​ gem 如何按 customer_ref 返回发票?

javascript - 如何为数据库中找到的每一行/记录生成链接,以用作在单击时填充表单的方式?

jquery - 从 jquery ajax 数据中获取逗号分隔值

jquery - 使用 jquery 创建粘性悬停效果

ruby-on-rails - 我无法引导 Spork 配置