2012-09-03 42 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)); 

,并调用相同的功能上您以后添加的元素。