日期控件只能选择月初月末

怎么设置日期控件只能选择月初月末

FineReport 用户X7092250 发布于 2021-7-9 15:35
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
1
snrtuemcLv8专家互助
发布于2021-7-9 15:46(编辑于 2021-7-9 16:43)

日期控件,初始化后事件,js代码

this._createCalendar = function(){        debugger;        var o = this.options;        var self = this;        if (this.options.need2BuildConfig === true && this.options.data) {                this.options.data.resetStatus(this.createDependencePara4Data());                var data = this.options.data.getData();                if (data[0].data) {                        if (data[0].data.startDate) {                                var sd = new Date(data[0].data.startDate);                                if (!FR.isInvalidDate(sd)) {                                        o.startDate = FR.date2Str(sd, 'yyyy-MM-dd');                                        this.std = this._createStartDate(o.startDate, o.format, this.viewMode);                                }                        }                        if (data[0].data.endDate) {                                var ed = new Date(data[0].data.endDate);                                if (!FR.isInvalidDate(ed)) {                                        o.endDate = FR.date2Str(ed, 'yyyy-MM-dd');                                        this.edd = this._createEndDate(o.endDate, o.format, this.viewMode);                                }                        }                }                this.options.rebuildConfig = false;        }        this.datepicker = new FR.DatePicker({                renderEl: this.$view,                viewMode: this.viewMode,                date: FR.str2Date(this.editComp.val(), o.format),                dateFormat: o.format,                startDate: this.std,                endDate: this.edd,                onDateUpdate:function(){                        if ($(':focus').length === 0) {                                self.editComp.focus();                        }                        self.editComp.val(FR.date2Str(this.getValue(), o.format));                        self.isValidateInput();                        self.fireEvent(FR.Events.AFTEREDIT);                }        });          this.datepicker._loadDateData = function (s, u) {                  if (!u) {            return        }        var g = u.getFullYear()          , v = u.getMonth()          , p = u.getDate();        var t = new Date()          , k = t.getFullYear()          , w = t.getMonth()          , a = t.getDate();        this.cache.showYear = g;        this.cache.showMonth = v;        var x = this.options.startDate          , r = this.options.endDate;        s.$title.text(Date._MN[v] + ", " + g);        var b = new Date(u);        b.setDate(b.getMonthDays() + 1);        if ((r && b > r) || b.getFullYear() > this.CONSTS.MAXYEAR) {            s.$nextm.addClass("disabled").removeClass("hover").data("disabled", true)        } else {            s.$nextm.removeClass("disabled").data("disabled", false)        }        var o = new Date(u);        o.setDate(0);        if ((x && o < x) || o.getFullYear() < this.CONSTS.MINYEAR) {            s.$prevm.addClass("disabled").removeClass("hover").data("disabled", true)        } else {            s.$prevm.removeClass("disabled").data("disabled", false)        }        u.setDate(1);        var l = (u.getDay() - this.CONSTS.FIRSTDAY) % 7;        u.setDate(0 - l);        u.setDate(u.getDate() + 1);        var m = s.find("tbody").children().eq(0);        for (var q = 0; q < 6; q++) {            if (!m.length) {                break            }            var d = m.children().eq(0);            d.addClass("week wn").text(u.getWeekNumber());            var e;            for (var n = 0; n < 7; ++n,            u.setDate(e + 1)) {                d = d.next();                debugger;                d.removeClass().data("nav", this.CONSTS.NAV["day"]);                if (!d.length) {                    break                }                e = u.getDate();                d.text(e);                var h = (u.getMonth() == v);                if (!h) {                    d.addClass("oday").data("disabled", true);                    continue                }                var c = false;                if ((x != null && x > u) || (r != null && r < u)) {                    d.addClass("day disabled");                    c = true                } else {                    d.addClass("day")                }                d.data("disabled", c);                if (!c) {                    if (h && e == p) {                        this.cache.selectedDate && this.cache.selectedDate.removeClass("selected");                        d.addClass("selected");                        this.cache.selectedDate = d;                        this.cache.showDay = e                    }                    if (u.getFullYear() == k && u.getMonth() == w && e == a) {                        d.addClass("today")                    }                    var f = u.getDay();                    if ([0, 6].indexOf(f) != -1) {                        d.addClass("weekend")                    }                }            }            m = m.next()        }         var tr = $('tr',s.find("tbody"));         for(var i=0;i<tr.length;i++){                 var flag = true;                var tds = $("td",tr.eq(i));                for(var index=0;index<tds.length;index++){                        if(tds.eq(index).hasClass("day")){                                tds.eq(index).addClass('first');                                flag = false;                                break;                        }                }                if(!flag) break;        }      for(var i=tr.length-1;i>=0;i--){                 var flag = true;                var tds = $("td",tr.eq(i));                for(var index=tds.length-1;index>=0;index--){                        if(tds.eq(index).hasClass("day")){                                tds.eq(index).addClass('first');                                flag = false;                                break;                        }                }                if(!flag) break;        }        for( var i=0; i<tr.length; i++ ){                var $days = $('td[class!="week wn"]',tr);                for( var j=0; j<$days.length; j++ ){                        var $day = $($days[j]);                        if($day.hasClass("first")==false){                                 $day.data("disabled",true);                                $day.attr('class','oday');                        }                                       }        }                 }                if (FR.Browser.isIE8() && this.$view.css('visibility') == 'hidden') {                this.$view.css("visibility", "visible");        } else {                this.$view.show();        }        $(document).bind('mousedown', this, this.collapseIf);        this.modifyPosition();                debugger        var tr = $('tbody>tr',this.datepicker.$datetable);         for(var i=0;i<tr.length;i++){                 var flag = true;                var tds = $("td",tr.eq(i));                for(var index=0;index<tds.length;index++){                        if(tds.eq(index).hasClass("day")){                                tds.eq(index).addClass('first');                                flag = false;                                break;                        }                }                if(!flag) break;        }      for(var i=tr.length-1;i>=0;i--){                 var flag = true;                var tds = $("td",tr.eq(i));                for(var index=tds.length-1;index>=0;index--){                        if(tds.eq(index).hasClass("day")){                                tds.eq(index).addClass('first');                                flag = false;                                break;                        }                }                if(!flag) break;        }        for( var i=0; i<tr.length; i++ ){                var $days = $('td[class!="week wn"]',tr);                for( var j=0; j<$days.length; j++ ){                        var $day = $($days[j]);                        if($day.hasClass("first")==false){                                 $day.data("disabled",true);                                $day.attr('class','oday');                        }                                       }        }        }

===========

setTimeout(function() {

$(".fr-date-trigger-center").click(function() {

$(".optbtns .btn.today").remove();  //今天按钮

$(".optbtns .btn.clear").attr("colspan", "4");  //清除按钮

$(".optbtns .btn.ok").attr("colspan", "4");   //确定按钮

})

}, 100)

  • 用户X7092250 用户X7092250(提问者) 之前用过这个js,但控件页面会有一个今天按钮
    2021-07-09 16:41 
  • snrtuemc snrtuemc 回复 用户X7092250(提问者) 在上面的js代码中,再加下面的代码
    2021-07-09 16:44 
最佳回答
0
Z4u3z1Lv6专家互助
发布于2021-7-9 15:39

DATEINMONTH(TODAY(),1)-----月初

DATEINMONTH(TODAY(),-1)----月末

在调用控件值的时候用上面的公式,不管选几号都是月初月末

  • 用户X7092250 用户X7092250(提问者) 是要在控件里面选择的时候就只能选择月初月末
    2021-07-09 16:42 
  • Z4u3z1 Z4u3z1 回复 用户X7092250(提问者) 写JS太难了 这个一样的效果
    2021-07-09 16:46 
  • 2关注人数
  • 1210浏览人数
  • 最后回答于:2021-7-9 16:43
    请选择关闭问题的原因
    确定 取消
    返回顶部