0

这是与以下相关的问题:嵌套模型表单。我想使用带有类的单击按钮添加新text字段。新生成的字段具有相同的类名和不同的 id。我的问题是:单击带有“.add_fields”类的按钮以获取新字段时,日期选择器没有出现。我的咖啡脚本代码是:date-picker.add_fields

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

2 回答 2

2

我不知道你的内容data('fields')。但那里必须有文本字段,对吧?

插入新的 DOM 元素后,data('fields')您必须初始化 datepicker:

$(this).before($(this).data('fields').replace(regexp, time)).find('.date-picker').datepicker()

PS:我不确定是$(this).before(content)返回$(this)还是$(content)(jQuery 文档没有解释)。也许你必须调整find.

于 2013-06-13T07:47:01.663 回答
1

您在单击按钮时将新字段添加到 DOM,尽管新添加的字段具有相同的类,但它们不会附带 datepicker,因为 datepicker 在添加到 DOM 之前已附加到该类元素。

要将日期选择器附加到动态添加的字段,您需要先将其删除然后重新附加。例如,如果您有带类的字段,datepicker并且您需要将您的 javascript 代码更改为:

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

  //remove the hasDatepicker class from the fields and re-intialise datepicker.
  $('.datepicker').removeClass('hasDatepicker').datepicker({dateFormat: 'yy/mm/dd'})
  event.preventDefault()
于 2013-06-13T07:45:28.853 回答