Вход

Просмотр полной версии : Баг при clone() полей с datepicker


sergeantpepper
04.04.2017, 00:05
Добрый день!

Есть html:
<fieldset id="driver-info">
<div class="fld">
<label>Дата рождения</label>
<input type="date" name="date_birth[]" value="" placeholder="дд.мм.гггг" data-min-year="1920" data-max-year="2006"/>
</div>
</fieldset>

Есть JS:
var $driver_info=$('#driver-info').clone();
$('#driver-info').after($driver_info);
$driver_info.removeAttr('id').addClass('driver-info');
$driver_info.find('input[type="date"],input[type="text"].date').removeAttr('id').datepicker({
inline: true,
language: 'ru',
changeYear: true,
changeMonth: true
});

Проблема в том, что не удается реинициализировать поля с datepicker.
Пробовал по-разному: и через refresh, и через destroy.

Гуглил. Однако пока все в молоко.
Кто-нибудь встречался с этим вопросом?

sergeantpepper
04.04.2017, 00:11
Решение:

Руками удалить класс hasDatepicker перед инициализацией:
$driver_info.find('input[type="date"],input[type="text"].date').each(function(index,input){
$(input).removeAttr('id').removeClass('hasDatepick er').datepicker({
inline: true,
language: 'ru',
changeYear: true,
changeMonth: true,
minDate: ($(input).attr('data-min-year')?new Date($(input).attr('data-min-year'),0,1):null),
maxDate: ($(input).attr('data-max-year')?new Date($(input).attr('data-max-year'),0,1):null),
yearRange: ($(input).attr('data-min-year')?($(input).attr('data-min-year')+':'+($(input).attr('data-min-year')?$(input).attr('data-min-year'):'c+10')):('c-10:'+$(input).attr('data-min-year')?$(input).attr('data-min-year'):'c+10')),
defaultDate: ($(input).attr('data-default-date')?$(input).attr('data-default-date'):null)
});
});

рони
04.04.2017, 00:18
Есть JS:
js рабочий... в чём проблема?