Javascript 如何在JS中验证DateTime 4控件

Javascript 如何在JS中验证DateTime 4控件,javascript,jquery,asp.net,datetime,telerik,Javascript,Jquery,Asp.net,Datetime,Telerik,我很难在Javascript中验证RadDateTimePicker 我有一个更新按钮,它在JS中触发一个函数,用于验证4个控件的日期和时间。 这些控件是:时钟输入、开始中断、结束中断、时钟输出 我的逻辑是: 列表项 1). 打卡时间不能在开始休息后。结束休息,打卡下班 列表项 2). 打卡前、打卡结束后、打卡结束后不能开始休息 列表项 3). 下班打卡前、下班打卡前、下班打卡后不能使用下班打卡 列表项 4). 打卡时间不能早于打卡时间、开始休息时间、结束休息时间 JS功能: 函数Vali

我很难在Javascript中验证RadDateTimePicker 我有一个更新按钮,它在JS中触发一个函数,用于验证4个控件的日期和时间。 这些控件是:时钟输入、开始中断、结束中断、时钟输出

我的逻辑是:

  • 列表项 1). 打卡时间不能在开始休息后。结束休息,打卡下班

  • 列表项 2). 打卡前、打卡结束后、打卡结束后不能开始休息

  • 列表项 3). 下班打卡前、下班打卡前、下班打卡后不能使用下班打卡

  • 列表项 4). 打卡时间不能早于打卡时间、开始休息时间、结束休息时间

JS功能:

函数ValidateTransaction(){
var ClockIn=$find(“”);
var ClockInDate=ClockIn.get_selectedDate();
var ClockOut=$find(“”);
var ClockOutDate=ClockOut.get_selectedDate();
var StartBreak=$find(“”);
var StartBreakDate=StartBreak.get_selectedDate();
var EndBreak=$find(“”);
var EndBreakDate=EndBreak.get_selectedDate();
//时钟的验证。
if(ClockInDate!=null){
//打卡不能在startBreak之后。
if(StartBreakDate!=null){
如果((起始起始日期-时钟起始日期)<0){
radalert(“DateTime中的时钟不能在开始-中断日期时间之后。”,440170,“案例全局警报”);
返回false;
}
}
//时钟输入不能在EndBreak之后。
如果(EndBreakDate!=null){
如果((EndBreakDate-ClockInDate)<0){
radalert(“日期时间内的时钟不能在结束中断日期时间之后。”,440170,“案例全局警报”);
返回false;
}
}
//打卡后不能再打卡。
if(ClockOutDate!=null){
如果((ClockOutDate-ClockInDate)<0){
radalert(“时钟输入日期时间不能在时钟输出日期时间之后。”,440170,“案例全局警报”);
返回false;
}
}
}//结束时钟验证。
// ============================== //
//StartBreak的验证。
if(StartBreakDate!=null){
//开始-休息时间不能早于打卡时间。
if(ClockInDate!=null){
如果((钟控状态-起始状态)<0){
radalert(“开始-中断日期时间不能早于DateTime中的时钟。”,440170,“案例全局警报”);
返回false;
}
}
//开始打断不能在结束打断之后。
如果(EndBreakDate!=null){
如果((EndBreakDate-StartBreakDate)<0){
radalert(“开始中断日期时间不能晚于结束中断日期时间。”,440170,“案例全局警报”);
返回false;
}
}
//打卡结束后不能开始休息。
if(ClockOutDate!=null){
如果((ClockOutDate-StartBreakDate)<0){
radalert(“开始-中断日期时间不能在打卡停止日期时间之后。”,440170,“案例全局警报”);
返回false;
}
}
}//开始-中断验证。
// ============================== //
//EndBreak的验证。
如果(EndBreakDate!=null){
//在打卡进入之前,不能结束休息。
if(ClockInDate!=null){
如果((ClockInDate-EndBreakDate)<0){
radalert(“结束中断日期时间不能早于DateTime中的时钟。”,440170,“案例全局警报”);
返回false;
}
}
//结束打断不能早于开始打断。
if(StartBreakDate!=null){
如果((StartBreakDate-EndBreakDate)<0){
radalert(“结束中断日期时间不能早于开始中断日期时间。”,440170,“案例全局警报”);
返回false;
}
}
//打卡结束后不能开始休息。
if(ClockOutDate!=null){
如果((ClockOutDate-EndBreakDate)<0){
radalert(“结束中断日期时间不能在打卡停止日期时间之后。”,440170,“案例全局警报”);
返回false;
}
}
}//结束中断验证。
}

你可以用它来缓解压力。以下是一些代码,可为您提供指导:

function ValidateTransaction() {
    var ClockIn = $find("<%=rdtpClockIn.ClientID %>");  
    var ClockOut = $find("<%=rdtpClockOut.ClientID %>");
    var StartBreak = $find("<%=rdtpStartBreak.ClientID %>");
    var EndBreak = $find("<%=rdtpEndBreak.ClientID %>");

    var ClockOutDate = ClockOut.get_selectedDate();
    var ClockInDate = ClockIn.get_selectedDate();   
    var StartBreakDate = StartBreak.get_selectedDate(); 
    var EndBreakDate = EndBreak.get_selectedDate();

    var mClockOut=moment(ClockOutDate), 
        mClockIn=moment(ClockInDate),
        mStartBreak=moment(StartBreakDate),
        mEndBreak=moment(EndBreakDate);

    //clock in should be befor start break
    if(!mClockIn.isBefore(mStartBreak){
        //handle invalid date
    }

    if(!mStartBreak.isBetween(mClockIn, mEndBreak)){
        //start break is not valid
    }

    if(!mEndBreak.isBetween(mStartBreak, mClockOut)){
        //end date is invalid
    }

    /*SIMILLARLY YOU CAN VALIDATE OTHER INTERVALS*/
}
函数ValidateTransaction(){
var ClockIn=$find(“”);
var ClockOut=$find(“”);
var StartBreak=$find(“”);
var EndBreak=$find(“”);
var ClockOutDate=ClockOut.get_selectedDate();
var ClockInDate=ClockIn.get_selectedDate();
var StartBreakDate=StartBreak.get_selectedDate();
var EndBreakDate=EndBreak.get_selectedDate();
var mClockOut=力矩(时钟)