My97DatePicker时间日期控件设置,开始时间--结束时间
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了My97DatePicker时间日期控件设置,开始时间--结束时间相关的知识,希望对你有一定的参考价值。
用My97DatePicker控件 有一个开始时间和结束时间 ,选择结束时间不能小于开始时间,
例如:开始时间:2013-3-22 结束时间不能选择比开始时间小,只能选择2013-3-22如以后包括2013-3-22
请大神解答,请给出My97DatePicker 验证时间代码 并且验证有alert弹出框提示用户。
请大神赐教!在线等。
<input id="d411" class="Wdate" type="text" onfocus="WdatePicker(skin:'whyGreen',minDate:'2013-03-22',maxDate:'2020-12-20')"/>
我这个加上了不能超过'2020-12-20'的限制.
My97DatePicker 主页说明文档地址: http://www.my97.net/dp/demo/index.htm
看下[功能及示例]
至于弹出alert 就不用了吧,用户使用时还弹了个对话框很烦人的
不过用jquery 是可以很容易达到这个效果的代码如下:
$(function ()
$("#d411").change(function ()
var aa = $(this).val().split("-");
var DateVal = new Date(aa[0], aa[1], aa[2]);
if (DateVal < new Date(2013, 3, 22))
alert("时间小于2013-3-22");
);
);本回答被提问者采纳
在执行自定义验证之前,MFC初始化日期时间选择器控件
我有一个带有两个日期时间控件的对话框,其格式设置为time。一个表示开始时间,另一个表示结束时间。
其中一个要求是开始时间不能超过结束时间,结束时间不能早于开始时间。
因此,我通过SetTime()
函数提前一小时将结束时间初始化为当前时间。
我的问题是我正在初始化OnInitDialog()
方法中的两个控件,但是DoDataExchange()
在OnInitDialog()
函数之前运行,因此开始时间和结束时间完全相同,这导致我的验证失败并且对话框没有被创建。日期的检查是在我改编自here的自定义验证器中完成的
如何才能首先初始化日期时间控件?或者我可能没有正确地接近这个或者是否有我遗漏的东西?
在OnInitDialog()
:
BOOL CNewManualEntryDlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
m_dtStartTime.SetRange(&GetTodayTimeMin(), &GetTodayTimeMax());
m_dtEndTime.SetRange(&GetTodayTimeMin(), &GetTodayTimeMax());
m_dtEndTime.SetTime(&SetEndTimeOneHourAhead());
return TRUE;
}
上面的函数只返回一个CTime
对象。作为参考,验证器如下所示:
void CNewManualEntryDlg::TimePickerValidation(CDataExchange* pDX)
{
CTime startTime;
CTime endTime;
m_dtStartTime.GetTime(startTime);
m_dtEndTime.GetTime(endTime);
BOOL isStartTimeBehindEndTime = startTime > endTime;
CString errorMsg;
if (!isStartTimeBehindEndTime)
{
errorMsg += "Error - Start time cannot be ahead of end time
";
}
if (!errorMsg.IsEmpty())
{
::AfxMessageBox(errorMsg);
pDX->Fail();
return;
}
}
而我只是在DoDataExchange()
中称它为:
void CNewManualEntryDlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Control(pDX, IDDT_STARTTIMEPICKER, m_dtStartTime);
DDX_Control(pDX, IDDT_ENDTIMEPICKER, m_dtEndTime);
TimePickerValidation(pDX);
}
你总是在做验证。始终意味着,在将数据加载到对话框中以及提交数据时,您正在执行验证。
DoDataExchange()
被称为两种方式。您可以确定pDX->m_bSaveAndValidate
以检查您是否处于保存阶段。
if (pDX->m_bSaveAndValidate)
TimePickerValidation(pDX);
以上是关于My97DatePicker时间日期控件设置,开始时间--结束时间的主要内容,如果未能解决你的问题,请参考以下文章
My97DatePicker设置,包括隐藏 清空,设置最大日期等 转载
html My97 DatePicker设置开始日期不能大于结束日期