ターボリンクとjquery.turbolinksを使用するRails4アプリケーションがあります。また、jQueryの日付ピッカープラグインも使用します。
Railscastエピソード#196 Nested Model Formから、1つのフォームで複数のモデルを追加/編集するためにRyanBatesの手法を使用しています。
私の場合、世帯に関連する人を追加/編集しています。person_fields部分には、日付ピッカー(class = "datepicker"で入力された文字列)の使用を「試行」するbirthdateフィールドが含まれていますが、機能せず、クラスでフィールドをクリックしても日付ピッカーが表示されません。 '.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()
どんな助けでも大歓迎です。
- - アップデート - -
Billy Monkの提案のおかげで、フィールドを追加するコードは次のようになりました。
$('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()
そしてそれは動作します!とても有難い!許可され次第、回答を受け付けます。