我正在使用materialize.min.js,然后在表单中为每个日期选择器使用不同的min和max规则时会出现问题。
以下代码无效。有什么想法吗?
<script>
$(document).ready(function() {
$('select').material_select();
$('.datepicker').pickadate({
firstDay: 1,
selectYears: true,
selectMonths: true,
onSet: function(object) {
if (object.select) {
this.close();
}
}
});
$('#dt1').pickadate({
min: new Date(new Date().getFullYear()-75,1,1),
max: new Date(new Date().getFullYear()-18,12,31)
});
$('#dt2').pickadate({
min: new Date(new Date().getFullYear()-14,new Date().getMonth(), new Date().getDate()),
max: new Date(new Date().getFullYear(),new Date().getMonth(), new Date().getDate())
});
});
</script>
答案 0 :(得分:2)
你尝试过这样的事吗?
$(document).ready(function() {
$('select').material_select();
$('#dt1').pickadate({
min: new Date(new Date().getFullYear()-75,1,1),
max: new Date(new Date().getFullYear()-18,12,31),
firstDay: 1,
selectYears: true,
selectMonths: true,
onSet: function(object) {
if (object.select) {
this.close();
}
}
});
$('#dt2').pickadate({
min: new Date(new Date().getFullYear()-14,new Date().getMonth(), new Date().getDate()),
max: new Date(new Date().getFullYear(),new Date().getMonth(), new Date().getDate()),
firstDay: 1,
selectYears: true,
selectMonths: true,
onSet: function(object) {
if (object.select) {
this.close();
}
}
});
});
我认为,pickadate
的第二次调用可能无法在第一次初始化后正确更新范围。
编辑:
要减少loc,您可以将一组基本选项扩展为两个对象,稍后再分配
var baseOptions = {
firstDay: 1,
selectYears: true,
selectMonths: true,
onSet: function(object) {
if (object.select) {
this.close();
}
}
}
$('#dt1').pickadate(Object.assign(baseOptions, {
min: new Date(new Date().getFullYear()-75,1,1),
max: new Date(new Date().getFullYear()-18,12,31)
})