js限制日期问题

上面是我做的报表但是有个问题:执行操作:编辑结束日期——编辑开始日期——修改结束日期,然后就会出现第三张图片的错误,出现了俩个日历而且点击确认也消除不掉。而且有时候参数框直接就不见了。

这是我的开始和结束日期写的js代码

开始:

var start = this.options.form.getWidgetByName("p_ksrq").getValue();

var end = this.options.form.getWidgetByName("p_jsrq").getValue();

var that=this.options.form.getWidgetByName("p_jsrq");

var o = that.options;

var data=that.options.data.getData();

if(data[0].data.startDate<start){

var ed = new Date(start);

    if (!FR.isInvalidDate(ed)) {

        o.startDate = FR.date2Str(ed, 'yyyy-MM-dd');

        that.std = that._createStartDate(o.startDate ,o.format, that.viewMode);

    }

that.datepicker = new FR.DatePicker({

        renderEl: that.$view,

        viewMode: that.viewMode,

        date: FR.str2Date(that.editComp.val(), o.format),

        dateFormat: o.format,

        startDate: that.std,

        endDate: data[0].data.endDate,

        onDateUpdate: function() {

            if ($(':focus').length === 0) {

                self.editComp.focus();

            }

            self.editComp.val(FR.date2Str(that.getValue(), o.format));

            self.isValidateInput();

            self.fireEvent(FR.Events.AFTEREDIT);

        }

    });

}

结束:

var start = this.options.form.getWidgetByName("p_ksrq").getValue();

var end = this.options.form.getWidgetByName("p_jsrq").getValue();

var that=this.options.form.getWidgetByName("p_ksrq");

var o = that.options;

var data=that.options.data.getData();

if(data[0].data.endDate>end){

var ed = new Date(end);

    if (!FR.isInvalidDate(ed)) {

        o.endDate = FR.date2Str(ed, 'yyyy-MM-dd');

        that.edd = that._createEndDate(o.endDate, o.format, that.viewMode);

    }

that.datepicker = new FR.DatePicker({

        renderEl: that.$view,

        viewMode: that.viewMode,

        date: FR.str2Date(that.editComp.val(), o.format),

        dateFormat: o.format,

        startDate: data[0].data.startDate,

        endDate: that.edd,

        onDateUpdate: function() {

            if ($(':focus').length === 0) {

                self.editComp.focus();

            }

            self.editComp.val(FR.date2Str(that.getValue(), o.format));

            self.isValidateInput();

            self.fireEvent(FR.Events.AFTEREDIT);

        }

    });

}

请问大佬们这是哪里有错误

FineReport wpf 发布于 2019-11-6 10:46
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
wufushunLv0见习互助
发布于2019-11-6 11:54

开始日期编辑结束后:

var start = this.options.form.getWidgetByName("p_ksrq").getValue();

var end = this.options.form.getWidgetByName("p_jsrq").getValue();

if (start>end) {

this.options.form.getWidgetByName("p_ksrq").setValue(end);

}

结束日期编辑结束后同理


  • wpf wpf(提问者) 谢谢老哥,已经可以满足我的需求了
    2019-11-06 13:45 
最佳回答
0
孤陌Lv6资深互助
发布于2019-11-6 11:00

其实你可以说一下你的需求吗? 不一定要用JS来实现 

  • wpf wpf(提问者) 限制选择的日期,开始日期不能大于结束日期。
    2019-11-06 11:03 
最佳回答
0
1310415720Lv7中级互助
发布于2019-11-6 11:19

1562638189668749.png不通过js,看看这样行不行

  • wpf wpf(提问者) 可以是可以,但是你在结束日期控件的起始时间上加个开始时间的参数后就无法实现了
    2019-11-06 11:29 
  • wpf wpf(提问者) 你这个我试了好多遍都不行,单个是可以的但是俩个都用的话就会出错
    2019-11-06 11:30 
  • 1310415720 1310415720 回复 wpf(提问者) 用公式吧date(left($开始日期,4),right(left($开始日期,6),2),right($开始日期,2))
    2019-11-06 11:31 
  • wpf wpf(提问者) 回复 1310415720 这公式什么意思,加在那的
    2019-11-06 11:33 
  • 1310415720 1310415720 回复 wpf(提问者) 你的结束日期控件,找到属性,下边有结束日期,选择公式,然后在里面些这个公式
    2019-11-06 11:37 
  • 4关注人数
  • 757浏览人数
  • 最后回答于:2019-11-6 11:54
    请选择关闭问题的原因
    确定 取消
    返回顶部