2009-06-11 87 views
0

我正在使用JRails和Ruby on Rails,因此我可以簡單地使用jQuery,因爲我對它更熟悉。我也試圖用Low Pro遠程提交我的一些表格。Ruby on Rails,Low Pro和JQuery(通過JRails)

我目前遇到一個有趣的問題,讓我難住。我已經添加了以下我application.js文件,我知道這些都正常工作,因爲我看到的響應返回(在Firefox使用螢火蟲):

$.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'它確實是你所期望的替換此。如果我的_test.html.erb文件非常簡單,它也可以。問題是當我試圖添加一個<form>到我的部分。取決於<form>標籤的位置,會出現不同的問題。例如,這

<tr> 
    <form> 
    <td>Some Text</td> 
    </form> 
</tr> 

<form> 
    <tr> 
    <td>Some Text</td> 
    </tr> 
</form> 

使絕對沒有出現。這

<form></form> 
<tr> 
    <td>Some Text</td> 
</tr> 

將使Some Text出現,但它失去了我所有的格式。而這

<tr> 
    <td>Some Text</td> 
</tr> 
<form></form> 

工作正是我需要(視覺上來說)。然而,這個明顯的缺點是我無法將表單輸入放到表格列中,這基本上使得整個過程無用。我可以通過簡單地把它們全部放在<div>或類似的東西里面的一行來解決這個問題,但我寧願一切都要對齊。

任何想法,如何解決這一難題,將不勝感激:-)

回答

1

<form>應該只放在<td>內或包裹<table>

<form><table/></form> 
+0

感謝您的回答,但這個想法是,用戶將可以同時添加多個的,這意味着所有的形式將所有包裝形式的元素,這是行不通的。 – 2009-06-12 05:19:58

+0

經過一番搜索之後,我發現你根本就不'允許將表單標籤放在表格中,就像我正在嘗試的那樣。所以我現在簡單地把輸入放在表格裏面,我會使用JavaScript來序列化/發送數據,因爲如果JavaScript不可用,它將降級爲使用純HTML。感謝您的答覆。 – 2009-06-12 15:33:18

2

如果你要使用你需要做的事情就像tom說的那樣,用表單元素包裝table元素,或者把它放在td元素中。

另外,您可以放棄表襯裏的東西和使用標籤元素來代替:

<style type="text/css"> 
label{ 
    float: left; 
    width: 120px; 
    font-weight: bold; 
} 

input, textarea{ 
    width: 180px; 
    margin-bottom: 5px; 
} 

textarea{ 
    width: 250px; 
    height: 150px; 
} 

.boxes{ 
    width: 1em; 
} 

#submitbutton{ 
    margin-left: 120px; 
    margin-top: 5px; 
    width: 90px; 
} 

br{ 
    clear: left; 
} 
</style> 
<form> 
<label for="user">Name</label> 
<input type="text" name="user" id="user" value="" /><br /> 
</form> 

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

0

這可能是因爲TR要素就是不要期望形式兒童和瀏覽器越來越混亂。這意味着,如果你把標籤形式標籤中應該解決的問題。如果你不能這樣做,因爲有其他形式的點綴周圍,然後嘗試TD嵌套在它元素來代替。

在最後兩個例子的形式和表是兄弟,不是父/子,所以在一個執行的任何過渡可能不會影響你期待其他。

如果它仍然不能正常工作,那麼可能與中的元素在文檔流中處理的方式有關。嘗試包裹了整個事情的DIV和應用過渡到這一點。