2011-01-21 87 views
77

填寫輸入字段我有這樣的:水豚:如何通過ID

<input class="string optional" 
    id="course_group_courses_attributes_2_name" 
    name="course_group[courses_attributes][2][name]" 
    placeholder="Lengua" 
    size="15" 
    type="text" /> 
</div> 

如何在其ID填補這一領域呢?

回答

109

fill_in接受id作爲第一個參數:

fill_in 'course_group_courses_attributes_2_name', :with => 'some text' 
+9

我認爲是這樣,但它不起作用。它似乎並沒有填補它。它沒有給出任何關於找不到的錯誤。它只是不填充它。 – Nerian 2011-01-21 13:00:14

+0

也許你可以包括有問題的水豚代碼和任何其他相關的代碼。 – raidfive 2011-01-21 17:40:21

26

您也可以做到這一點:

find('Id or class here').set('some text') 
3

如果您使用simple_form寶石,那麼你一定要注意,它會自動執行確定您的表單元素,因此手動確定元素是徒勞的!

有;然而,simple_form遵循id表單元素的命名約定。

object_attribute 

所以,如果你補防信息比方說,一個接觸對象如下:

= simple_form_for @contact do |f| 
    = f.input :first_name 
    = f.input :last_name 

simple_form將自動分別生成的ID給每個窗體元素像這樣:

id="contact_first_name" 
id="contact_last_name" 

現在你可以簡單地使用這個命名約定來滿足你所有的fill_in需求。希望這可以幫助。

5

fill_in接受沒有我首先發現混淆的#符號的id。另請注意,如果您的輸入字段處於模式,則可能需要等待轉場或淡入,然後才能填充字段。