我想把min&我的茧的maxDate生成了DateTimePicker。 在我的应用程序中,我可以管理为我的茧生成html的唯一ID。
在我的代码中,
我需要把minDate&我的茧的maxDate生成了DateTimepicker。
我该怎么办?
var num = 0;
$(function() {
$('#tickets').on('cocoon:before-insert', function(e,ticket_to_be_added) {
ticket_to_be_added.fadeIn('slow');
ticket_to_be_added.attr('id', 'new_id'+ num);
});
$('#tickets').on('cocoon:after-insert', function(e,added_ticket) {
set_datetimepicker();
num++;
});
}
和set_datetimepicker();在下面
function set_datetimepicker(){
var d = new Date();
d.setDate(d.getDate() + 6);
var y = new Date();
y.setDate(y.getDate() + 365);
var a = new Date();
a.setDate(a.getDate());
var b = new Date();
b.setDate(b.getDate() + 365);
$('#new_id'+num+' .datetimepicker1').datetimepicker({
format: 'YYYY/MM/DD HH:mm',
showClose:true,
useCurrent:false,
minDate: d,
maxDate: y,
stepping: 15,
});
$('#new_id'+num +' .datetimepicker2').datetimepicker({
format: 'YYYY/MM/DD HH:mm',
showClose:true,
useCurrent:false,
minDate: d,
maxDate: y,
stepping: 15,
});
$('#new_id'+num +' .datetimepicker3').datetimepicker({
format: 'YYYY/MM/DD HH:mm',
showClose:true,
useCurrent:false,
minDate: a,
maxDate: b,
stepping: 15,
});
以下这些代码效果不佳。 “未捕获的TypeError:无法读取未定义的属性'minDate'” 请帮帮我。
$('#new_id'+num +' .datetimepicker1').on("dp.change", function (e)
$('#new_id'+num +' .datetimepicker2').data("DateTimePicker").minDate(e.date);
});
$('#new_id'+num +' .datetimepicker2').on("dp.change", function (e) {
$('#new_id'+num +' .datetimepicker1').data("DateTimePicker").maxDate(e.date);
$('#new_id'+num +' .datetimepicker3').data("DateTimePicker").maxDate(e.date);
});
$('#new_id'+num +' .datetimepicker3').on("dp.change", function (e) {
$('#new_id'+num +' .datetimepicker2').data("DateTimePicker").maxDate(e.date);
});
答案 0 :(得分:0)
cocoon回调为你提供了插入的html,所以不要使用id,只需使用它:)你在设置id时在before-insert
中正确执行。相反,我建议:做不设置一个特定的id,只使用插入/添加的html(已经包装在jquery选择器中)。
因此,如果您将新票证交给您的功能,例如
set_datetimepicker(added_ticket);
然后在你的set_datetimepicker
中你可以使用它(而不是试图再次找到它)。
added_ticket.find('.datetimepicker1').data('DateTimePicker').maxDate(...)
这是理论。现在更详细地查看你的代码,我发现你有三个日期时间选择器,当他们改变时,他们必须在他们的兄弟日期时间选择器中改变/反映它。
你可以依靠jquery .on
功能,以及日期时间选择器的相对接近度,在这种情况下不需要回调。
做类似的事情:
$('#tickets').on('dp.change', '.datetimepicker1', function(e) {
$(this).closest('.nested-fields').find('.datetimepicker2').data("DateTimePicker").maxDate(e.data);
})
每当.datetimepicker1
被更改时,无论是否动态插入,如果它都在#tickets
div内,将处理给定的回调。回调将首先搜索周围的.nested-fields
div,然后找到想要的.datetimepicker2
,以便您可以相应地设置最大日期。