这应该是直截了当的......但是2小时后我仍然看不到问题。
我正在尝试使用eternicode datepicker实现两个日期选择器“签入”/“签出”。
作者自己甚至记录了与其版本here一起使用的更新解决方案。
var nowTemp = new Date();
var now = new Date(nowTemp.getFullYear(), nowTemp.getMonth(), nowTemp.getDate(), 0, 0, 0, 0);
var checkin = $('#dpd1').datepicker({
beforeShowDay: function(date) {
return date.valueOf() >= now.valueOf();
}
}).on('changeDate', function(ev) {
if (ev.date.valueOf() > checkout.date.valueOf()) {
var newDate = new Date(ev.date)
newDate.setDate(newDate.getDate() + 1);
checkout.setValue(newDate);
checkout.setDate(newDate);
checkout.update();
}
checkin.hide();
$('#dpd2')[0].focus();
}).data('datepicker');
var checkout = $('#dpd2').datepicker({
beforeShowDay: function(date) {
return date.valueOf() > checkin.date.valueOf();
}
}).on('changeDate', function(ev) {
checkout.hide();
}).data('datepicker');
当我尝试实现它时,我在控制台中得到以下内容
Uncaught TypeError: Cannot read property 'valueOf' of undefined
我试图定义日期变量,但它似乎没有什么区别。
JSfiddle:http://jsfiddle.net/56bVc/1/
期待你的帮助,但不要期待随之而来的额头拍打!
答案 0 :(得分:2)
我知道这是一个老问题。使用此https://github.com/eternicode/bootstrap-datepicker版本的datepicker时,我也遇到了同样的问题。
经过几次头痛,我已经重新编写了一些签入/签出脚本并取得了一些成功。
希望这有助于其他人面对同样的问题。
var nowTemp = new Date();
var now = new Date(nowTemp.getFullYear(), nowTemp.getMonth(), nowTemp.getDate(), 0, 0, 0, 0);
var checkin = $('#dpd1').datepicker({
beforeShowDay: function(date) {
return date.valueOf() < now.valueOf() ? 'disabled' : '';
}
}).on('changeDate', function(ev) {
if (ev.date.valueOf() > checkout.viewDate.valueOf()){
var newDate = new Date(ev.date)
newDate.setDate(newDate.getDate() + 1);
checkout.setDate(newDate);
}
else {
checkout.setDate(ev.date + 1);
}
checkin.hide();
$('#dpd2')[0].focus();
}).data('datepicker');
var checkout = $('#dpd2').datepicker({
beforeShowDay: function(date) {
return date.valueOf() <= checkin.viewDate.valueOf() ? 'disabled' : '';
}
}).on('changeDate', function(ev) {
checkout.hide();
}).data('datepicker');
答案 1 :(得分:0)
我阅读了一些博客,根据我的理解,这是jquery引用的问题,或者在使用之前未定义您的变量。
好的方法是首先检查你的jquery,jquery ui&amp;加载所有js,然后通过alert检查变量。
或者您可以删除变量引用,然后检查问题是否来自其他变量。
Uncaught TypeError: Cannot read property 'value' of undefined
答案 2 :(得分:0)
你使用什么Bootstrap版本?浏览插件的代码,它使用Bootstrap类名从DOM中挑选元素(有BS3和BS2的版本)。
您可能还想提供HTML标记,以便根据正确的格式进行验证。