我有三个文本框BirthDate
,JoiningDate
& LeavingDate
。
我要确保的是:
Joining date
和Leaving date
不得大于Birthdate
Leaving Date
不得大于Joining Date
和BirthDate
。 我想在输入错误的条目时抛出错误。
我使用了DatePicker来获取用户的日期输入。
这是我正在使用的JS代码: -
$(function () {
$("[id$=mainContent_txtdateofbirth], [id$=mainContent_txtdoj], [id$=mainContent_txtdol]").datepicker({
textboxImageOnly: true,
textboxImage: 'images/calendar.png',
changeMonth: true,
changeYear: true,
dateFormat: "yy / mm / dd",
yearRange: "-40:+0",
maxDate: new Date(),
});
});
我正在使用的文本框代码: -
<asp:TextBox ID="txtdateofbirth" CssClass="form-control" runat="server" ValidationGroup="AddNew"></asp:TextBox>
<asp:TextBox ID="txtdoj" CssClass="form-control" runat="server" ValidationGroup="AddNew"></asp:TextBox>
<asp:TextBox ID="txtdol" CssClass="form-control" runat="server" ValidationGroup="AddNew"></asp:TextBox>
我从here获得了解决方案,但它不是像我试图做的按钮点击。
这是我的相关代码: -
tr>
<td style="vertical-align: top;">
<label class="control-label" for="dob">Date of Birth</label></td>
<td>
<div class="control-group">
<div class="controls">
<asp:TextBox ID="txtdateofbirth" CssClass="form-control" autocomplete="off" runat="server" ValidationGroup="AddNew"></asp:TextBox>
<asp:RequiredFieldValidator ID="reqdob" runat="server" CssClass="error-class" ControlToValidate="txtdateofbirth" ErrorMessage="Please select the date of birth" ValidationGroup="AddNew"></asp:RequiredFieldValidator>
</div>
</div>
</td>
</tr>
<tr>
<td style="vertical-align: top;">
<label class="control-label" for="subject">Date of Join</label></td>
<td>
<div class="control-group">
<div class="controls">
<asp:TextBox ID="txtdoj" Wrap="true" CssClass="form-control" autocomplete="off" runat="server" ValidationGroup="AddNew"></asp:TextBox>
<asp:RequiredFieldValidator ID="reqdoj" CssClass="error-class" runat="server" ControlToValidate="txtdoj" ErrorMessage="Please add the date of joining" ValidationGroup="AddNew"></asp:RequiredFieldValidator>
</div>
</div>
</td>
</tr>
<tr>
<td style="vertical-align: top;">
<label class="control-label" for="subject">Date of Leaving</label></td>
<td>
<div class="control-group">
<div class="controls">
<asp:TextBox ID="txtdol" CssClass="form-control" autocomplete="off" runat="server" ValidationGroup="AddNew"></asp:TextBox>
</div>
</div>
</td>
</tr><asp:Button ID="btnSubmit" runat="server" CssClass="btn btn-prm" Text="Submit" Width="75" CausesValidation="true" ValidationGroup="AddNew" OnClick="btnSubmit_Click" />
请根据上面列出的标准建议我如何验证这些日期。
答案 0 :(得分:1)
编辑2 根据您发布的评论,似乎将所有部分放在一起可能比我预期的更难,所以这里是您需要做的才能获得你想要的结果:
leavedate
和joindate
与birthdate
进行比较,并确定leavedate
和joindate
是否出现在{{1}之前或之后}} 编辑:这是另一篇关于如何点击按钮点击的MSDN文章。因此,如果您将所有部分组合在一起,您将获得所需的结果,即通过点击按钮验证日期。
比较日期,尤其是您想要的日期相对简单。
要在服务器端执行(在C#中),这是一篇MSDN文章和示例:
birthdate
要做客户端(在Javascript中),这里是一个,这是一篇W3Schools文章和示例:
using System;
public class Example
{
public static void Main()
{
DateTime date1 = new DateTime(2009, 8, 1, 0, 0, 0);
DateTime date2 = new DateTime(2009, 8, 1, 12, 0, 0);
int result = DateTime.Compare(date1, date2);
string relationship;
if (result < 0)
relationship = "is earlier than";
else if (result == 0)
relationship = "is the same time as";
else
relationship = "is later than";
Console.WriteLine("{0} {1} {2}", date1, relationship, date2);
}
}
// The example displays the following output:
// 8/1/2009 12:00:00 AM is earlier than 8/1/2009 12:00:00 PM