2012-09-03 43 views
0

我正在使用jQuery UI datepicker函數在我的html表單中創建一些日期字段。動態jQuery UI日期選取元素

我用下面的代碼獲取任何輸入欄用「日期選擇器」類的工作:

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

,並調用相同的功能上您以後添加的元素。