我正在尝试并且未能将datepicker添加到动态创建的输入。jQuery:在动态创建的输入上运行多个日期选择器
他们有不同的ID,我专门针对新的输入和调用datepicker。
在下面的jsFiddle示例中,它仅适用于第二个输入(第一个datepicker被调用),并且不适用于之后的任何其他输入。
这里是jsFiddle:http://jsfiddle.net/TJfbc/1/按加号加上更多。
注意:我知道第一个元素不会有datepicker。
我正在尝试并且未能将datepicker添加到动态创建的输入。jQuery:在动态创建的输入上运行多个日期选择器
他们有不同的ID,我专门针对新的输入和调用datepicker。
在下面的jsFiddle示例中,它仅适用于第二个输入(第一个datepicker被调用),并且不适用于之后的任何其他输入。
这里是jsFiddle:http://jsfiddle.net/TJfbc/1/按加号加上更多。
注意:我知道第一个元素不会有datepicker。
这里有一个cleaner alternative
$(function() {
//append one handler to the parent to detect append actions
$('.action_items').on('click', '.expand', function() {
var $el = $(this);
$el.parent()
.clone()
.appendTo($el.closest('.action_items'))
.find('input')
.removeClass('hasDatepicker')
.each(function() {
newName = this.name.slice(0,6) + (parseInt(this.name.slice(6)) + 1);
this.name = newName;
this.id = newName;
})
.datepicker();
//change text, remove original handler, add the remove handler
$el.text('-').off('click').on('click',function(){
$(this).parent().remove();
});
})
});
你需要“刷新”先前的文本框是早已类的hasDatepicker'之前,你可以初始化一个新
new_action_item.find('.dpDate').removeClass('hasDatepicker').datepicker()
可读性的改善:
感谢您指出它需要“刷新”,我现在使用的摧毁它们:$(“ dpDate‘)日期选择器(’摧毁”)添加新的前。 – Craig 2012-03-28 07:21:46
啊,这工作得很好谢谢你! – Craig 2012-03-28 07:19:26