I am trying to validate a start date and finish date so that if a finish date entered by a user is before the start date it will throw up an error. I am doing this using JavaScript and the custom validator but get a runtime error saying 'CheckDate is undefined'.
I think this shouldn't be hard to solve as the code looks ok think I'm just missing something.
Any help would be great.
Here is my JavaScript, it is in script tags just haven't copied them over
function CheckDate(sender, args) {
if (new date (document.getElementById("txtstartdate").value)
> new (document.getElementById("TxtFinish").value)) {
args.IsValid = false;
return;
}
args.IsValid = true;
}
Here is the validation on my FinishDate control
<asp:CustomValidator ID="CustomValidator29" runat="server"
ErrorMessage="Finish Date should be greater than the Start Date" ClientValidationFunction="CheckDate"></asp:CustomValidator>
Need any more info ask away :).
I am trying to validate a start date and finish date so that if a finish date entered by a user is before the start date it will throw up an error. I am doing this using JavaScript and the custom validator but get a runtime error saying 'CheckDate is undefined'.
I think this shouldn't be hard to solve as the code looks ok think I'm just missing something.
Any help would be great.
Here is my JavaScript, it is in script tags just haven't copied them over
function CheckDate(sender, args) {
if (new date (document.getElementById("txtstartdate").value)
> new (document.getElementById("TxtFinish").value)) {
args.IsValid = false;
return;
}
args.IsValid = true;
}
Here is the validation on my FinishDate control
<asp:CustomValidator ID="CustomValidator29" runat="server"
ErrorMessage="Finish Date should be greater than the Start Date" ClientValidationFunction="CheckDate"></asp:CustomValidator>
Need any more info ask away :).
Share Improve this question edited Dec 8, 2015 at 20:43 DanM7 2,2463 gold badges29 silver badges47 bronze badges asked Sep 3, 2012 at 11:49 madzcodingmadzcoding 941 gold badge4 silver badges12 bronze badges 7-
also you need to specify the
ControlToValidate
attribute forCustomValidator
– Ram Mourya Commented Sep 3, 2012 at 11:59 - Which control would I validate? – madzcoding Commented Sep 3, 2012 at 12:04
- I still get the error 'Microsoft JScript runtime error: 'CheckDate' is undefined' – madzcoding Commented Sep 3, 2012 at 12:13
- Is your CheckDate function is embedded your page, or added dynamically from codebehind ? – Hassan Commented Sep 3, 2012 at 12:22
-
if (new Date(document.getElementById("txtstartdate").value.getDate()) > new Date(document.getElementById("TxtFinish").value.getDate()))
, javascript is case sensitive replacedate
withDate
and addgetDate()
which returns the Date and ignores the time, may be during runtime the CheckDate is not available . – Ram Mourya Commented Sep 3, 2012 at 12:23
2 Answers
Reset to default 5You can simply use a CompareValidator!
<asp:CompareValidator ID="CompareValidator1" runat="server"
ControlToCompare="txtStartDate" ControlToValidate="txtEndDate"
Display="Static" ErrorMessage="'End Date' must not be earlier than 'From Date'" Text="*"
Operator="GreaterThanEqual" SetFocusOnError="True" Type="Date"
ValidationGroup="SearchGroup">
Here is what I did, and it validates perfectly. Since I wasn't sure exactly what kind of control you were using, I just used a basic text box. I would enter values like "July 21, 1983 01:15:00".
JavaScript:
<script type="text/javascript" >
function CheckDate(sender, args) {
var startDate = new Date(document.getElementById("txtStartDate").value);
var finishDate = new Date(document.getElementById("txtFinishDate").value);
if (startDate > finishDate) {
args.IsValid = false;
}
else {
args.IsValid = true;
}
}
</script>
HTML:
<asp:CustomValidator ID="CustomValidator29" runat="server"
ErrorMessage="Finish Date should be greater than the Start Date"
ClientValidationFunction="CheckDate" ControlToValidate="txtStartDate">
</asp:CustomValidator>
<asp:TextBox id="txtStartDate" runat="server" />
<asp:TextBox id="txtFinishDate" runat="server" />
Here's a table of values and results:
txtStartDate: July 21, 1983 01:15:00
txtEndDate: July 25, 1983 01:15:00
Valid: Yes
txtStartDate: July 25, 1983 01:15:00
txtEndDate: July 21, 1983 01:15:00
Valid: No
txtStartDate: July 21, 1983 01:15:00
txtEndDate: July 21, 1983 06:15:00
Valid: Yes
txtStartDate: July 21, 1983 06:15:00
txtEndDate: July 21, 1983 01:15:00
Valid: No
发布者:admin,转转请注明出处:http://www.yc00.com/questions/1742324218a4422422.html
评论列表(0条)