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

Jquery Rails 3.1和ajax创建的表单不提交,jquery,ruby-on-rails,ruby,ajax,ruby-on-rails-3.1,Jquery,Ruby On Rails,Ruby,Ajax,Ruby On Rails 3.1,我正在尝试在rails 3.1项目中创建内联编辑。我正在创建表单以通过ajax编辑副本,然后尝试通过ajax发送编辑 但是表单不希望绑定,并且表单不会在通过ajax创建的表单上提交 现在有人知道如何在表单创建后绑定它吗 我使用edit.js.erb添加表单: $("#nutri_<%= @nutritioninfo.id %>").after('<%= escape_javascript(render(:partial=>'admin/products/nutrition

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

但是表单不希望绑定,并且表单不会在通过ajax创建的表单上提交

现在有人知道如何在表单创建后绑定它吗

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

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

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

可能没有什么问题

首先,可能很明显,但您是否需要application.js中的jquery_ujs?如果您没有对remote:true执行任何操作,这可能就是原因

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

但如果提交继续进行,并且您没有任何响应,那么您可能必须像Andre Dublin所说的那样在控制器中实现xhr请求


rails上的ajax艺术不错,你可以参考一下,也许你应该看看

正如Leszek在第二点中所说,“记住,在使用ajax时,必须使用'live()'而不是'bind()'或'action()',因为每次重新加载表单时,live都会对元素进行绑定('bind'只绑定一次操作)。”

我尝试手动添加远程设备,但它仍然不想使用以下命令:$('nutri_显示表单')。每个(function(){console.log($(this))$(this.live('submit',function(e){alert(“testing”)$.rails.handleRemote($(this));e.preventDefault();})绑定是什么意思?当您点击编辑表单上的submit按钮时会发生什么?是否有任何内容被发送到Rails服务器?如果没有,您是否在浏览器端看到任何错误(使用Firefox+Firebug或Chrome)?您的控制器是否设置为响应xhr请求?您使用的是简单表单,那么为什么要使用这些表格?在看到railscast之后,我使用了我的2,它在Rails3.1和activeadmin中运行得非常好。你只需要适当的休息路线。如果您使用继承的资源gem,也会考虑到这一点。
$%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"