泛微吧 关注:915贴子:4,009
  • 8回复贴,共1

泛微如何用JS控制日期控件,让以前的日期变成灰色选不了

只看楼主收藏回复

泛微OA E8如何用JS控制日期控件,让已经过去的日期变成灰色不能选择。比如有一个机票请购流程,不可能倒回去买机票,这个时候就需要不能选以前的日期了,效果类似于图片,贴吧有大神知道不?


IP属地:广东1楼2019-07-30 17:33回复
    有这样一个思路,仅供参考!js判断请购日期是否小于申请日期,如果小于,则弹出提示框并清空当前选项


    IP属地:河南来自Android客户端2楼2019-07-31 10:01
    回复
      日期控件是调用的第三方mydate97扩展,文档可以参考官网,里面有api可以控制日期范围
      可以尝试修改\systeminfo\Calendar.jsp中的调用逻辑,但记住这个jsp是适用于所有日期字段的


      IP属地:上海3楼2019-10-16 16:40
      回复
        这是miniUI吗?


        IP属地:上海来自Android客户端4楼2020-09-19 23:06
        回复
          E9里的JS API可以控制日期的选择区间


          IP属地:福建5楼2020-09-22 15:59
          回复
            我也是测试页面可以用,回调也正常,前台没有显示,不知道为啥


            IP属地:安徽6楼2020-11-02 17:29
            回复
              <script>
              jQuery(document).ready(function() {
              var thisrequestid = WfForm.getBaseInfo().requestid;
              if(thisrequestid>0){
              WfForm.changeFieldValue("field6530", {value:thisrequestid});
              }
              });
              </script>
              <script>
              var drqFileid = WfForm.convertFieldNameToId("jbksrq", "detail_1");
              var drqFileid1 = WfForm.convertFieldNameToId("jbjsrq", "detail_2");
              //明细表日期 rq是具体的明细表的日期
              WfForm.registerAction(WfForm.ACTION_ADDROW+"1", function(index){//新增行
              WfForm.controlDateRange(drqFileid +"_"+index, -1, '');
              WfForm.controlDateRange(drqFileid1 +"_"+index, -1, '');
              //限定日期 0代表是只能选择当前日期。 1是待办明天。2是后天以此类推
              });
              WfForm.bindFieldAction("onclick",drqFileid , function(fieldid,rowIndex){//按钮
              WfForm.controlDateRange(drqFileid +"_"+rowIndex, -2, '');
              //限定日期 0代表是只能选择当前日期。 1是待办明天。2是后天以此类推
              });var ksrqFileid = WfForm.convertFieldNameToId("jbksrq", "detail_1");//开始日期
              var jsrqFileid = WfForm.convertFieldNameToId("jbjsrq", "detail_1");//结束日期
              var ksrq="";
              var jsrq="";
              WfForm.bindFieldAction("onclick",ksrqFileid+","+jsrqFileid , function(fieldid,rowIndex){
              ksrq=$("#"+ksrqFileid+"_"+rowIndex).val();//开始日期的值
              jsrq=$("#"+jsrqFileid+"_"+rowIndex).val();//结束日期的值
              if(fieldid.indexOf(ksrqFileid)>-1){//点击的是开始日期
              WfForm.controlDateRange(jsrqFileid +"_"+rowIndex, '', jsrq); //限定开始日期只能选择结束日期及之前的日期
              }else if(fieldid.indexOf(jsrqFileid)>-1){//点击的是结束日期
              WfForm.controlDateRange(jsrqFileid +"_"+rowIndex, ksrq, ''); //限定结束日期只能选择开始日期及之后的日期
              }
              });var ksrqFileid = WfForm.convertFieldNameToId("jbksrq", "detail_1");//开始日期
              var jsrqFileid = WfForm.convertFieldNameToId("jbjsrq", "detail_1");//结束日期
              var ksrq="";
              var jsrq="";
              WfForm.registerCheckEvent(WfForm.OPER_SAVE+","+WfForm.OPER_SUBMIT, function(callback){
              var allrows=WfForm.getDetailAllRowIndexStr("detail_1");
              var allrowsArr;
              var flag=true;
              if(allrows.length>0) allrowsArr=allrows.split(",");
              for(i=0;i<allrowsArr.length;i++){
              var rowIndex=allrowsArr[i];
              ksrq=$("#"+ksrqFileid+"_"+rowIndex).val();//开始日期的值
              jsrq=$("#"+jsrqFileid+"_"+rowIndex).val();//结束日期的值
              if(ksrq>jsrq){
              alert("第"+(parseInt(rowIndex)+1)+"行,开始日期大于结束日期!");
              flag=false;
              return;
              }
              }
              if(flag) callback(); //继续提交需调用callback,不调用代表阻断
              });
              </script>
              ----这段拿去用,求实施顾问给的,有用,但是我看不懂,只能你自己研究了


              IP属地:江苏7楼2021-01-12 11:35
              回复
                <script>
                WfForm.controlDateRange("fieldid", 30, 365); //限定日期可选范围,往后30天至一年
                </script>
                数字可变正负数,("fieldid", -30, 0); //限定日期可选范围,往前30天至当日


                9楼2021-08-26 11:16
                回复
                  楼主知道怎么设置了吗


                  10楼2022-09-07 20:22
                  回复