我需要结束日期始终大于开始日期,我尝试使用CompareValidator进行验证。
代码如下:
我有一个文本框开始日期
<asp:TextBox ID="TxtStartDate"
runat="server" />
<asp:CalendarExtender Enabled="True"
ID="TxtStartDate_CalendarExtender"
TargetControlID="TxtStartDate"
runat="server" />
另一个TextBox结束日期。
<asp:TextBox ID="TxtEndDate"
runat="server" />
<asp:CalendarExtender Enabled="True"
ID="TxtEndDate_CalendarExtender"
TargetControlID="TxtEndDate"
runat="server" />
<asp:CompareValidator ControlToCompare="TxtStartDate"
ControlToValidate="TxtEndDate"
Display="Dynamic"
ErrorMessage="CompareValidator"
ID="CompareValidator1"
Operator="GreaterThan"
Type="Date"
runat="server" />
但比较字段验证器失效。
例如,如果开始日期是2/04/2012,结束日期是10/04/2012则会触发。
答案 0 :(得分:10)
只需你可以试试这个
<asp:CompareValidator ID="cmpVal1" ControlToCompare="txtStartDate"
ControlToValidate="txtEndDate" Type="Date" Operator="GreaterThanEqual"
ErrorMessage="*Invalid Data" runat="server"></asp:CompareValidator>
答案 1 :(得分:3)
这个是正确的..它解决了我的问题。
<asp:CompareValidator ID="cmpVal1" ControlToCompare="txtStartDate" ControlToValidate="txtEndDate" Type="Date" Operator="GreaterThanEqual" ErrorMessage="ToDate should be greater than FromDate" runat="server"></asp:CompareValidator>
别忘了写:
cmpVal1.Validate()
关于发生比较的事件。
答案 2 :(得分:0)
关心 从日期和到目前为止,它们应该小于今天的日期(Currentdate)。 从日期开始应该少于到目前为止。
文字框
<asp:TextBox ID="txtFromDate" runat="server" onChange="javascript: txtFromDateChanged(this)"></asp:TextBox>
<asp:TextBox ID="txtToDate" runat="server" onChange="javascript: txtToDateChanged(this);" ></asp:TextBox>
java脚本(在Head Section中放置脚本块)
<script type="text/javascript">
function txtToDateChanged(sender, args) {
var date = new Date();
var startDate = Date.parse(document.getElementById('<%= txtFromDate.ClientID %>').value);
var endDate = Date.parse(document.getElementById('<%= txtToDate.ClientID %>').value);
var timeDiff = endDate - startDate;
var daysDiff = Math.floor(timeDiff / (1000 * 60 * 60 * 24));
if (date > endDate) {
document.getElementById('<%= txtToDate.ClientID %>').value = "";
alert('*Select date greater than Today.');
}
if (daysDiff < 0) {
document.getElementById('<%= txtToDate.ClientID %>').value = "";
alert('*FromDate should be less than Todate');
}
}
function txtFromDateChanged(sender, args) {
var date = new Date();
var startDate = Date.parse(document.getElementById('<%= txtFromDate.ClientID %>').value);
if (date > startDate) {
document.getElementById('<%= txtFromDate.ClientID %>').value="";
alert('*Select date greater than Today.');
}
}
</script>