我有一个jquery datepicker插件,这里是代码: http://dpaste.com/639849/
真正的问题在于hightlight函数,其中if条件永远不会被执行。有问题的if条件是:
if ($('#id_checkin').datepicker('getDate') == date) {
return [false, ''];
}
虽然我尝试使用console.log输出日期变量和$('#id_checkin')。datepicker('getDate')的值。在某一点上,两个值完全相同。以下是两个值的输出:
2011年10月28日星期五00:00:00 GMT + 0530
2011年10月28日星期五00:00:00 GMT + 0530
我的问题是,如果它们的价值匹配,为什么if语句不相信呢? :( 请指导。感谢
答案 0 :(得分:1)
它们是相同的类型还是简单地串联到相同的表示形式?尝试将其更改为if ($('#id_checkin').datepicker('getDate').toString() == date.toString())
,看看会发生什么。
编辑:至于为什么......可能是因为其中一个值是一些奇怪的日期对象。 JavaScript将尝试强制类型,但它可能只适用于它所知道的类型。我的第二个猜测是这些日期中的一个(或两个)具有非零毫秒的部分。由于被调用toString()
生成的输出中不包含毫秒,因此它们可能匹配其字符串表示但不匹配实际值。尝试输出value
属性(假设两边都是有效的Date对象),看看那里有什么。