2015-11-11 196 views
0

如果弹出式日历2在弹出式日历1(而不是之前)设置的日期开始,那么需要输入开始日期和结束日期(以及未来)的客户会发现它很有用。jquery ui datepicker beforeShow

多年来,下面的代码工作过,在几个不同的网站:

$("#start").datepicker({ dateFormat: 'yy-mm-dd' }); 
    $("#end").datepicker({ 
     dateFormat: 'yy-mm-dd', 
     beforeShow: function() { 
      dt = $("#start").datepicker('getDate'); 
      return { minDate: dt }; // a JS object - dt could be 'null' (which is OK) 

我不能让它使用jQuery UI的当前版本的工作。我在本网站上建议的ShowShow解决方案之前尝试了一些常规解决方案,但没有一个解决我的问题。

任何人都可以提出解决方案吗?还是有一种解决方案比上面的代码更少使用代码?

+0

发布代码没有问题(尽管'dt'应该是一个局部变量),问题在别处。你可以在MCVE中重现吗? – blgt

+0

一个MCVE不会帮忙。代码很好。它现在在我的几个网站上运行,使用旧版本的jQuery UI。但它不适用于当前版本的jQuery UI。我需要知道为什么,以及我能做些什么才能让代码再次运行。 –

+0

为什么MCVE不能提供帮助?诊断一个可以重现的问题要比你不能重复的问题容易得多 – blgt

回答

0

当我看到它正确时,你的代码中有syntaxError。

尝试把这个代码,并告诉我,如果它的工作:

$("#start").datepicker({ dateFormat: 'yy-mm-dd' }); 
$("#end").datepicker({ 
    dateFormat: 'yy-mm-dd', 
    beforeShow: myFunction 
}); 

function myFunction(){ 
    dt = $("#start").datepicker('getDate'); 
    return { minDate: dt }; 
} 
+0

据我所知,使用匿名函数而不是单独的命名函数不仅不是语法错误,而是编码加! –

+0

这不是一个答案!代码完美无瑕,在几个网站(私人管理区域)中都能正常工作。 –

1

我已经浪费了大家的时间。上面输入的代码在最新版本的jQuery UI中正常工作。没有工作的代码使用不同的日期格式。我不认为这个小差异很重要,但我现在发现日期格式不仅仅是一种显示格式,而是由小部件的方法使用。

为了什么是值得的,因为我正在开发一个暑假租赁网站,并且首先设计了移动设备,我认为显示日期可以省掉一年。也许它可以 - 但dateFormat选项不只是显示日期。该小部件需要默认dateFormat,或定制一年的定制dateFormat