2010-06-18 50 views
3

我有23(列)x6(行)表,並用link_to_remote函數更改行。 每個tr標記有它自己的id屬性用form_tag渲染部分表格行變得瘋狂!

更改鏈接調用更改操作和更改操作使用渲染函數部分更改行。

_change.html.erb

<td id="row_1">1</td> 
. 
. 
omitted 
. 
. 
<td id="row_23">23</td> 

link_to_remote功能

<%= link_to_remote 'Change', :update => 'row_1', :url => change_path %> 

變化行動

def change 
    logger.debug render :partial => 'change' 
end 

如果我編碼類似上面,一切工作正常。這意味着所有更改的列在一行

但是,如果我纏上的form_for像下面的功能部分代碼...

<% form_for 'change' do %> 
<td id="row_1">1</td> 
. 
. 
omitted 
. 
. 
<td id="row_23">23</td> 
<% end %> 

然後,一列位於一個行,該列是第一列。我查閱了日誌文件,但它是正常的html標籤。

怎麼了?

alt text

回答

0

看看那就是BEING生成的HTML。 td元素由form元素包裝是無效的。表格單元格必須位於表格行內。

+1

那麼,有什麼辦法可以在表中編輯行嗎?如果不是ajax風格的表單,那麼代碼就能正常工作。 – 2010-06-18 16:16:51

0

你必須使用remote_form_for爲Ajax形式

<% remote_form_for 'change' do %> 

代替

<% form_for 'change' do %> 
+0

它不起作用。這裏是錯誤結果的屏幕截圖。 http://www.flickr.com/photos/[email protected]/4710821079/ – 2010-06-18 08:49:03

+0

它可以在IE8中找到,並導致Chrome導致錯誤的結果。有什麼問題? – 2010-06-18 09:08:37