泛微oa流程表单之开始时间与结束时间限制在本周且不能跨月

本次是主表中开始时间和结束时间限制在本周且不能跨月。在这里插入图片描述
如果出现跨月会弹出一个“出现跨月”的提示,并且清空当前所选日期
在这里插入图片描述

<script type="text/javascript">
jQuery(document).ready(function(){
	var beginDate = jQuery("#field23020");//主表计划开始时间
	var beginDatespan = jQuery("#field23020span");
	var endDate = jQuery("#field23021");//计划结束时间
    var endDatespan = jQuery("#field23021span");
	var requestId= jQuery("input[name='requestid']");
	var flag = true;
	var currentDate = beginDate.val();//获取时间
	var spanhtml = '<img align=absMiddle src="/images/BacoError.gif">';//必填的红色感叹号
	beginDate.bindPropertyChange(function(){//开始时间的改变事件
		if(flag){
			if(beginDate.val() != ""){
				if(currentDate != beginDate.val()){
					executing();//调用executing方法
				}
			}
		}
	});
	function executing(){

		jQuery.ajax({
			url:"/BL/WeeklyPayment.jsp",//该jsp文件内容,详见下面附件
			dataType:"json",
			data:{"date":beginDate.val(),"creater":creater.val(),"requestId": requestId.val()},
			error: function(XMLHttpRequest, textStatus, errorThrown) {
 				alert("数据传输错误,错误信息:"+textStatus+";请联系系统管理员!");
 			},
 			success:function(result){
				flag = false;
                var date = new Date(beginDate.val());//调用事件函数。
                //时间限制在本周
 				beginDate.val(result.monday);
 				beginDatespan.text(result.monday);
 				endDate.val(result.saturday);
 				endDatespan.text(result.saturday);
 				currentDate = beginDate.val();
                var num = parseInt(currentDate.substring(3).substring(3).substring(2));//获取到多少号之后,转换成数字形式。转换形式详见 [Js 字符串中截取相应数字](https://blog.csdn.net/Y_6155/article/details/105785992)
                var zhou=date.getDay()-1;//一周中的星期几
                var  day=(num-zhou+9); 
				if(day>30){//判断,如果出先跨月则清空数据
					alert("出现跨月");
					//清空数据
 					beginDate.val("");
 					beginDatespan.html(spanhtml);
 					endDate.val("");
 					endDatespan.text("");
				}
 				flag = true;
 			}
		});
	}
	function clear(groupid) {
		var ids = jQuery("[name='check_node_"+groupid+"']");
		if(ids.length < 1)return;
		for(i=0; i<ids.length; i++) {
			jQuery(ids[i]).attr('checked',true);
		}
		deleteRow0(groupid);
		//好像deleteRow方法好像不清空indexnum 导致更换数据有问题 手动清理
		indexnum.val(0);
	}

});

</script>

WeeklyPayment.jsp 附件

<%@ page import="java.text.*" %>
<%@ page import="java.util.*" %>
<%@ page import="org.json.*" %>
<%@ page import="java.util.regex.Matcher" %>
<%@ page import="java.util.regex.Pattern" %>
<%@page import="weaver.general.Util"%>
<jsp:useBean id="RecordSet2" class="weaver.conn.RecordSet" scope="page" />
<%@ page contentType="text/html;charset=UTF-8" language="java"%>
<%
	String dateStr = Util.null2String(request.getParameter("date"));
	String creater = Util.null2String(request.getParameter("creater"));
	int requestId = Util.getIntValue(request.getParameter("requestId"), 0);
	JSONObject jsb = new JSONObject();
	SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
	//获取calendar相关信息
	Date date = sd.parse(dateStr);
	Calendar cal = Calendar.getInstance();
	cal.setTime(date);
	//查询日期所在周的开始时期
	cal.add(Calendar.DATE,-cal.get(Calendar.DAY_OF_WEEK)+1);
	String firstDate = sd.format(cal.getTime());
	cal.add(Calendar.DATE,6);
	String lastDate = sd.format(cal.getTime());
	//回复原来的日期
	cal.setTime(date);
	//设置一周的第一天为星期一
	cal.setFirstDayOfWeek(Calendar.MONDAY);
	int day = cal.get(Calendar.DAY_OF_WEEK);
	cal.add(Calendar.DATE, cal.getFirstDayOfWeek()-day);
	String monday = sd.format(cal.getTime());
	//星期六的日期
	cal.add(Calendar.DATE,5);
	String saturday = sd.format(cal.getTime());
	jsb.put("monday",monday);
	jsb.put("saturday",saturday);
	String sql = "select * from formtable_main_514 where begindate = '"+monday+"' ";
	RecordSet2.executeSql(sql);
	jsb.put("exist",false);
	out.print(jsb);
%>

可以加QQ群,和志同道合的朋友相互学习

QQ群号:627815776

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值