Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 通过ajax调用将表单添加到html页面会使表单无法工作(如果添加了表单,则可以工作)_Jquery_Ruby On Rails_Ajax - Fatal编程技术网

Jquery 通过ajax调用将表单添加到html页面会使表单无法工作(如果添加了表单,则可以工作)

Jquery 通过ajax调用将表单添加到html页面会使表单无法工作(如果添加了表单,则可以工作),jquery,ruby-on-rails,ajax,Jquery,Ruby On Rails,Ajax,我通过一个类似表单的ajax调用添加了一个ajax表单。新添加的表单不起作用。我正在使用Rails3和jquery。这是我的密码: update.js.erb:/*添加可用于创建新Xyz的表单。提交添加的表单应使用执行create.js.erb的create操作*/ $("#mytable tr:last").after("<%= escape_javascript(render 'shared/xyz', :object => Xyz.new)%> "); $("#myta

我通过一个类似表单的ajax调用添加了一个ajax表单。新添加的表单不起作用。我正在使用Rails3和jquery。这是我的密码:

update.js.erb:/*添加可用于创建新Xyz的表单。提交添加的表单应使用执行create.js.erb的create操作*/

$("#mytable tr:last").after("<%= escape_javascript(render 'shared/xyz', :object => Xyz.new)%> ");
$("#mytable tr:last").after("<%= escape_javascript(render 'shared/xyz', :object => @xyz)%> ");
$(“#mytable tr:last”)。在(“Xyz.new)%>”之后;
create.js.erb:/*添加可用于编辑创建的xyz的表单。提交添加的表单应使用执行update.js.erb的更新操作*/

$("#mytable tr:last").after("<%= escape_javascript(render 'shared/xyz', :object => Xyz.new)%> ");
$("#mytable tr:last").after("<%= escape_javascript(render 'shared/xyz', :object => @xyz)%> ");
$(“#mytable tr:last”)。在(“@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>

正确)do | f |%>
如果页面包含此表单(作为更新或创建操作)。此表单将按预期工作。但是,如果通过上述ajax调用将此表单添加到表中,则该表单不起作用。表单将被成功添加,并且显示良好。css看起来不错。但是,表格不会提交任何内容

我错过什么了吗


谢谢查看表单的源HTML,它看起来像预期的那样吗?操作和方法正确吗?

事实证明,上述代码适用于safari,但不适用于firefox 4 beta,甚至不适用于firefox 3.6

Firefox不喜欢嵌套表中的表单元素。它也不喜欢表单中的表(如上面的代码)。Firefox在自动更正例程中对此进行补偿,并在刷新整个页面时正确显示。但是,在ajax中,表单元素是通过javascript添加的,绕过了自动更正,因此无法正确显示

我离开了桌子,现在它可以工作了


谢谢

因为不起作用的表单是通过ajax添加的,所以我无法通过“查看源代码”查看源HTML,所以我使用Firefox的inspect工具。html看起来和预期的一样,与实际工作的表单(添加时不使用ajax)完全相同。创建新表单的方法为:post,id:new_xyz,actions:/xyzs。用于更新的方法有:post,id:edit_xyz_65,actions:/xyzs/65。谢谢