laydate怎么限制只能选择每月的最后一天呢

提问 已结 6 92
flying87
flying87 2019-8-15
悬赏:20飞吻
版本:layui 5.0.9 浏览器:chrome
laydate怎么限制只能选择每月的最后一天呢,文档里貌似都是需要具体指定时间,但是最后一天是个变量
回帖
  • 办法是有的,但是都得改源码,首先render的时候配置一个参数lastDay,然后为true,表示开启只选每月最后一天。
    然后第一种办法,在T.prototype.calendar的时候去设置最大max最小min的值,因为每次切换一个月份都会进来,所以只要拿到当前切换的月份去计算最后一天是多少,然后设置max和min都为这天就可以

    然后在laydate.js最下面写上计算的方法

    这种办法有个弊端,就是假如你当前打开的laydate会显示两个月的最后一天的话,只能选择当前月的,而且你render设置的min和max会被重新覆盖
    第二种办法,在渲染html的时候去把所有的日期都禁掉,然后找到是月份最后一天的日子给去除禁选的class

    这种就会可以选择当前面板的所有最后一天的日子
    两种办法的render的时候都配置下lastDay

    只测试了你需要的这个功能,如果采用,建议先复制一份源码保存
    0 回复
  • lll_lll
    2019-8-15
    既然你每月只能选最后一天,何不改为只选择月数,选完后自己补上选择月数的最后一天
    0 回复
  • @lll_lll 一楼逻辑鬼才啊
    0 回复
  • flying87
    2019-8-15
    @lll_lll 我也是这么认为的,这是产品经理的要求,非要这么搞
    0 回复
  • 阳四爷
    2019-8-15
    要么你写个监听事件呗, 监听到选择的时间不对,不是月最后一天就return 提示。
    一楼逻辑可取啊
    0 回复
  • lll_lll
    2019-8-15
    @flying87 那我觉得你需要和你们产品说清楚哦,目前不支持这个效果,如果非要你们实现比较难,实现方式:1、找到页面加载完后的HTML的底层代码用js改变其样式与点击等效果,2、自己写一个类似laydate的组件,3、改layui的源码(前提得清楚layui的逻辑)。都是耗时耗力的工作,如果时间有限建议说服产品用上面的办法,选择时只选择月数,选完后输入框里面显示完整日期
    0 回复