Я не уверен, что вы используете $.clone()
для «дублирования» ваших элементов, но если это так, проблема может быть связана с передачей флага true
. например $('div#id').clone(true)
. Это клонирует элемент, а также присоединенные к нему события (и его дочерние элементы). Однако использование этого в элементах пользовательского интерфейса jquery может испортить несколько вещей, поэтому лучше переопределить пользовательскую информацию элемента после его дублирования.
Скорее всего, вы не управляете этим с такой гранулярностью. Более или менее, вы сталкиваетесь с проблемами, потому что jqueryui не знает об этих дублированных полях формы. Я бы предложил удалить «дублированную» версию поля datepicker и заменить его новым полем datepicker.
Примерно так:
// code to duplicate form
// ...
// Now replace the element with one just like it but without any events
$('#newDupedForm')
.find('.datefield')
.replaceWith(
$(this).clone(false).datepicker(options)
);
Это должно избавить от любых ссылок на старый указатель даты jquery ui из другого элемента и создать новый, однако, если что-то мне не хватает, вы всегда можете создать элемент ввода с нуля и выполнить replaceWith
с этим.