2012-09-30 72 views
0

我跟着一個關於創建嵌套屬性表格episode的railscasts。所以當我的表單上按下add mission按鈕時,我有一段coffeescript會創建一個user_mission對象。自動完成一個動態欄杆

jQuery -> 
    $('form').on 'click', '.add_fields', (event) -> 
    time = new Date().getTime() 
    regexp = new RegExp($(this).data('id'), 'g') 
    $(this).before($(this).data('fields').replace(regexp, time)) 
    event.preventDefault() 

的HTML的一部分產生如下所示:

<input id="user_user_missions_attributes_70324621482200_mission_title" name="user[user_missions_attributes][70324621482200][mission_title]" size="30" type="text" /> 

我嘗試添加到自動填充功能,看起來到已創建任務的列表,能夠看到,如果用戶輸入使命已經存在。問題是我有點新的HTML,我不知道如何添加一個自動完成調用動態HTML ID。

有沒有一種乾淨的方式來找到我需要添加自動完成的字段?我是否需要標記以搜索user_user_missions_attributes_70324621482200_mission_title

謝謝

回答

0

嘗試通過name屬性的部分匹配來定位它。它不會那麼快,但是如果您每頁只有幾個,您將不會注意到頁面加載性能下降。

$("input[name*='[mission_title]']") 

你也可以部分匹配的ID,但它似乎並不乾淨:

$("input[id*='_mission_title']") 

你也可以添加一個類的領域,只是使用它。

+0

我喜歡使用類的想法。我查了一下如何使用它,並在任務欄靜態顯示在頁面上的時候使用它,但不是當上面的jQuery通過'add mission button'動態添加字段時。 – GTDev

+0

一旦你添加了一個字段,你將需要創建一個新的jQuery對象,因爲jQuery對象被緩存了,並且不會自動拾取新的DOM元素。 – bricker