本次是主表中开始时间和结束时间限制在本周且不能跨月。
如果出现跨月会弹出一个“出现跨月”的提示,并且清空当前所选日期
<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);
%>