2012-09-03 5 views
0

Я использую функцию jQuery UI datepicker для создания нескольких полей даты в моей форме html.Динамические элементы jQuery UI datepicker

Я использую следующий код, чтобы получить любое поле ввода с классом «Datepicker» работать:

$('.datepicker').each(function() { 
    var id = $(this).attr('id').split('_')[0]; 

    if ($('#'+id+'_value').val()) { 
     var initialdate = new Date($('#'+id+'_value').val()); 
    } 
    else { 
     var initialdate = new Date(); 
    } 

    $(this).val($.datepicker.formatDate('DD, d MM, yy', initialdate)); 
    $('#'+$(this).attr('id').split('_')[0]+'_value').val($.datepicker.formatDate('yy-mm-dd', initialdate)); 
    $(this).datepicker({ 
         'dateFormat': 'DD, d MM, yy', 
         'altField': '#'+id+'_value', 
         'altFormat': 'yy-mm-dd' 
    }); 
}); 

Однако, я также использую некоторое другое JavaScript клонировать пролет, который содержит несколько элементов формы , Когда новые элементы создаются, функция datepicker не работает.

Что я могу сделать, чтобы новые работали как существующие?

Любые советы, оцененные.

Спасибо.

ответ

0

Как вы, вероятно, называете эту итерацию при создании документа, элементы, добавленные в DOM позже, не создаются как новые datepickers, поэтому вам нужно будет явно вызвать .datepicker() для каждого из вновь добавленных элементов, которые вы хотите включить датапикер сверху.

В основном, переместить код из итератора выше своей собственной функции, то сделать:

$('.datepicker').each(myDatePickerFunction($(this)); 

И называют ту же функцию на элементы добавляемые позже.