Ruby on Rails,Low Pro和JQuery(通过JRails)

我在Ruby on Rails上使用JRails ,因此我可以简单地使用jQuery,因为我对它更熟悉。 我也试图使用Low Pro远程提交我的一些表格。

我目前遇到了一个让我难过的有趣问题。 我已将以下内容添加到我的application.js文件中,我知道这些工作正常,因为我看到响应已返回(在Firefox中使用Firebug):

 $.ajaxSetup({ dataType: "script" }); $(function() { $('a.remote').attach(Remote.Link); $('form.remote').attach(Remote.Form); }); 

我所要做的就是将class="remote"添加到我的链接和我的表单中,一切都很好。 dataType: "script"部分确保它对返回的响应文本执行eval() ,以便它可以正确更新页面。

所以,我有一个简单的链接,创建一个新的货物。 在我的new.js.rjs文件中,我有以下内容:

 page.insert_html :bottom, '#shipments_table', :partial => 'test', :locals => { :shipment => @shipment } 

如果我用page.visual_effect :fade, '#shipments_table'替换它page.visual_effect :fade, '#shipments_table'就像你期望的那样。 如果我的_test.html.erb文件相当简单,它也可以。 问题是当我尝试将

添加到我的部分时。 根据

标签的位置,会出现不同的问题。 例如,这个

   Some Text   

还有这个

 
Some Text

绝对没有出现。 这个

 
Some Text

将使Some Text出现,但它会丢失我的所有格式。 还有这个

  Some Text  

完全符合我的需要(视觉上讲)。 然而,明显的缺点是我无法将表单输入放入表格列,这基本上使整个过程无用。 我可以通过简单地将它们全部放在

或类似的东西中的一行来解决这个问题,但我希望一切都是对齐的。

如何解决这个难题的任何想法将不胜感激:-)

只应放在

或包装

 

如果你打算使用表格,你需要像汤姆所说的那样做,并用表格元素包装表格元素,或者把它放在td元素中。

或者,您可以放弃表格以填充内容并使用标签元素:

  

http://www.cssdrive.com/index.php/examples/exampleitem/tableless_forms/

很可能tr元素不希望形成孩子,浏览器变得混乱。 这意味着如果您将标记放在 表单标记中,它应该可以解决问题。 如果你不能这样做,因为周围有其他forms,那么尝试将其嵌套在td元素中。

在最后两个示例中,表单和表格是兄弟,而不是父/子,因此在一个上执行的任何转换可能不会像您期望的那样影响另一个。

如果它仍然不起作用,则可能与文档流中如何处理表单元素有关。 尝试将整个事物包装在div中并应用转换。