使用datepicker处理克隆。我在stackoverflow中搜索了我的问题我没有得到正确的东西。当用户从原始日期单击日期时,它按预期工作但是一旦用户单击克隆div中的addmore按钮,则datepicker无法正常工作。我试着给.destroy
结果没有达到预期的结果。这可能是重复的问题,但正如我所说的解决方案在我的情况下不起作用。
这是jquery代码。
var currentDate = new Date();
$(".cloned-row1").find(".deg_date").removeClass('hasDatepicker').datepicker({
dateFormat: "mm-dd-yy",
changeMonth: true,
yearRange: "-100:+0",
changeYear: true,
maxDate: new Date(),
showButtonPanel: false,
beforeShow: function () {
setTimeout(function (){
$('.ui-datepicker').css('z-index', 99999999999999);
}, 0);
}
});
$(".deg_date").datepicker("setDate", currentDate);
var count=0;
$(document).on("click", ".edu_add_button", function () {
alert("checj");
var $clone = $('.cloned-row1:eq(0)').clone(true,true);
//alert("Clone number" + clone);
$clone.find('[id]').each(function(){this.id+='someotherpart'});
$clone.find('.btn_more').after("<input type='button' class='btn_less1' id='buttonless'/>")
$clone.attr('id', "added"+(++count));
$clone.find(".school_Name").attr('disabled', true).val('');
$clone.find(".degree_Description").attr('disabled', true).val('');
$clone.find("input.deg_date").datepicker();
$(this).parents('.educat_info').after($clone);
});
$(document).on('click', ".btn_less1", function (){
var len = $('.cloned-row1').length;
if(len>1){
$(this).closest(".btn_less1").parent().parent().parent().remove();
}
});
这是小提琴link
提前致谢
答案 0 :(得分:6)
Jquery datepicker
为初始化时绑定的输入字段创建基于UUID的ID属性。克隆这些元素会导致更多元素具有相同的ID(jQuery不喜欢)或者不同的ID(如果克隆例程管理它(,这意味着datepicker不知道克隆))。
尝试像这样更新你的js代码
$clone.find("input.deg_date")
.removeClass('hasDatepicker')
.removeData('datepicker')
.unbind()
.datepicker({
dateFormat: "mm-dd-yy",
changeMonth: true,
yearRange: "-100:+0",
changeYear: true,
maxDate: new Date(),
showButtonPanel: false,
beforeShow: function() {
setTimeout(function() {
$('.ui-datepicker').css('z-index', 99999999999999);
}, 0);
}
});
这里是更新的JSFIDDLE。希望这有帮助。
答案 1 :(得分:0)
您可以重新启动日期选择器,
在点击事件最后放置日期选择器行
stylesheet
它将起作用!!!