2013-02-15 45 views
0

我有一個使用turbo鏈接和jquery.turbolinks的rails 4應用程序。它也使用jQuery日期選擇器插件。jQuery datepicker部分插入後未初始化

我使用Ryan Bates的技術在Railscast第196集嵌套模型表單中添加/編輯多個模型。

就我而言,我添加/編輯與家庭相關的人員。 person_fields partial包含一個birthdate字段,它試圖使用日期選擇器(一個帶有class =「datepicker」的字符串輸入),但它不起作用,當我點擊帶有類的字段時,datepicker不出現'.datepicker'。

隨着頁面加載的其他形式,datepicker工作正常。但對於通過此代碼動態添加的此表單,datepicker不會出現。

下面是該鏈接的代碼插入部分:

def link_to_add_fields(name, f, association) 
    new_object = f.object.send(association).klass.new 
    id = new_object.object_id 
    fields = f.fields_for(association, new_object, child_index: id) do |builder| 
     render(association.to_s.singularize + "_fields", f: builder) 
    end 
    link_to(name, '#', class: "add_fields small round button success", data: {id: id, fields: fields.gsub("\n", "")}) 
end 

而且用於插入咖啡腳本部分:

$('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() 

及日期選取器咖啡腳本:

$('.datepicker').datepicker() 

任何幫助,非常感謝。

--- UPDATE ---

感謝比利·蒙克的建議,現在添加字段代碼如下所示:

$('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() 
    $('.datepicker').datepicker() 

和它的作品!非常感激!只要我被允許,我會盡快接受答案。

回答

2

在添加新字段的JavaScript函數中添加$('。datepicker')。datepicker()後添加。日期選擇器不會自動綁定到新添加的元素。