我正在通过类似形式的ajax调用添加ajax表单。新添加的表单不起作用。我正在使用rails 3和jquery。这是我的代码:
update.js.erb:/ *添加了一个可用于创建新Xyz的表单。提交添加的表单应使用执行create.js.erb * /
的create操作$("#mytable tr:last").after("<%= escape_javascript(render 'shared/xyz', :object => Xyz.new)%> ");
create.js.erb:/ *添加了一个可用于编辑创建的xyz的表单。提交添加的表单应使用执行update.js.erb * /
的更新操作$("#mytable tr:last").after("<%= escape_javascript(render 'shared/xyz', :object => @xyz)%> ");
表单shared / _xyz如下所示:
<tr>
<%= form_for(object, :remote => true) do |f| %>
<td>
<%= f.check_box :completed %>
</td>
<td>
<%= f.text_field :name %>
</td>
<% end %>
</tr>
如果页面包含此表单(作为更新或创建操作)。此表单将按预期工作。但是,如果通过上述ajax调用将此表单添加到表中,则表单不起作用。表单将成功添加,它将显示正常。 css看起来不错。但是,表格不会提交任何内容。
我错过了什么吗?
由于
答案 0 :(得分:0)
查看表单的源HTML,看起来是否符合预期?行动和方法是否正确?
答案 1 :(得分:0)
事实证明上面的代码适用于safari,显示但不适用于firefox 4 beta,甚至不能在firefox 3.6中显示。
Firefox不喜欢嵌套表中的表单元素。它也不像表格中的表格(如上面的代码)。 Firefox在自动更正例程中对此进行补偿,并在刷新整个页面时正确显示。然而,使用ajax,表单元素添加了javascript绕过该自动更正,因此它无法正确显示。
我离开了桌子,现在可以使用了
由于