WdatePicker-限制日期选择

深碍√TFBOYSˉ_ 2022-03-12 15:20 588阅读 0赞

场景:

  1. 开始时间,和结束时间最大选择今天。

  2. 开始时间和结束时间的最大时间间隔为30天。

jsp代码:

  1. <!-- 时间段 -->
  2. <form>
  3. <!-- 开始时间格式规则直接绑定在input上 -->
  4. 开始时间:
  5. <input type="text" style="line-height: 12px;" id="start_time_id" readonly="readonly" class="Wdate"
  6. name="start_time_name" onClick="WdatePicker({readOnly:true,dateFmt:'yyyy-MM-dd ',maxDate:'#F{$dp.$D(\'end_time_id\')||\'%y-%M-%d\'}',minDate:'#F{$dp.$D(\'end_time_id\',{d:-29})}'})"
  7. οnchange="setEndTimeDurationWhileStartTimeChange();"/>
  8. <!-- 结束时间格式规则在js中进行及时调整 -->
  9. 结束时间:
  10. <input type="text" style="line-height: 12px;" id="end_time_id" class="Wdate" name="end_time_name" readonly="readonly"/>
  11. </form>

js代码:

  1. // 结束时间:初始默认最大日期为今天
  2. $(function(){
  3. // 设置结束时间的最大可取值为today
  4. $('#end_time_id').unbind("click");
  5. $('#end_time_id').bind("click",function(){
  6. WdatePicker({
  7. readOnly:true,
  8. dateFmt:'yyyy-MM-dd ',
  9. minDate:'#F{$dp.$D(\'start_time_id\')}',
  10. maxDate:'#F{\'%y-%M-%d\'}'
  11. });
  12. });
  13. });
  14. // 开始时间值改变时,改变结束时间值得范围
  15. function setEndTimeDurationWhileStartTimeChange(){
  16. var start = $('#start_time_id').val(); // 格式:2017-05-01
  17. // 如果选中了开始时间
  18. if(start != "" && start != null){
  19. // endMaxDate = 开始时间+29天
  20. start = start.replace(/-/g,"/");
  21. var endMaxDate = new Date(start);
  22. endMaxDate.setDate(endMaxDate.getDate()+29);
  23. // today = 今天
  24. var today = new Date();
  25. today.setHours(0);
  26. today.setMinutes(0);
  27. today.setSeconds(0);
  28. today.setMilliseconds(0);
  29. // 如果endMaxDate>today
  30. if(endMaxDate.getTime()>today.getTime()){
  31. // 设置结束时间的最大可取值为today
  32. $('#end_time_id').unbind("click");
  33. $('#end_time_id').bind("click",function(){
  34. WdatePicker({
  35. readOnly:true,
  36. dateFmt:'yyyy-MM-dd ',
  37. minDate:'#F{$dp.$D(\'start_time_id\')}',
  38. maxDate:'#F{\'%y-%M-%d\'}'
  39. });
  40. });
  41. }else{
  42. // 设置结束时间的最大可取值为endMaxDate
  43. $('#end_time_id').unbind("click");
  44. $('#end_time_id').bind("click",function(){
  45. WdatePicker({
  46. readOnly:true,
  47. dateFmt:'yyyy-MM-dd ',
  48. minDate:'#F{$dp.$D(\'start_time_id\')}',
  49. maxDate:'#F{$dp.$D(\'start_time_id\',{d:29})}'
  50. });
  51. });
  52. }
  53. }
  54. // 如果清空了开始时间,重设结束时间的范围,到今天为止
  55. else{
  56. // 设置结束时间的最大可取值为today
  57. $('#end_time_id').unbind("click");
  58. $('#end_time_id').bind("click",function(){
  59. WdatePicker({
  60. readOnly:true,
  61. dateFmt:'yyyy-MM-dd ',
  62. minDate:'#F{$dp.$D(\'start_time_id\')}',
  63. maxDate:'#F{\'%y-%M-%d\'}'
  64. });
  65. });
  66. }
  67. }

发表评论

表情:
评论列表 (有 0 条评论,588人围观)

还没有评论,来说两句吧...

相关阅读