Einddatum groter dan startdatum validatie javascript werkt niet goed

Ik probeer een validatie voor mijn datums te maken zodat de einddatum groter is dan de startdatum maar niet werkt. Wat doe ik fout?

 <head>
 <script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
 <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
  <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />       
  <script src="@Url.Content("~/Scripts/jquery-ui-1.8.19.min.js")" type="text/javascript"></script>
  <script src="@Url.Content("~/Scripts/jquery-ui.unobtrusive.min.js")" type="text/javascript"></script>   
  <script src="@Url.Content("~/Scripts/jquery-ui.unobtrusive-0.5.0.min.js")" type="text/javascript"></script>
  <script src="@Url.Content("~/Scripts/gen_validatorv4.js")" type="text/javascript"></script>

  </head>
     @using (Html.BeginForm("SearchFree", "Reservation", FormMethod.Get,new {id = "form" }))
   {                    

  Introduceti perioada Rezervarii
<div class="editor-label">
@(Html.JQueryUI().Datepicker("StartDate").DateFormat("mm-dd-yy").MinDate(DateTime.Today).ShowButtonPanel(true).ChangeYear(true).ChangeMonth(true).NumberOfMonths(2))
</div>
<div class="editor-label">
@(Html.JQueryUI().Datepicker("EndDate").DateFormat("mm-dd-yy").MinDate(DateTime.Today).ShowButtonPanel(true).ChangeYear(true).ChangeMonth(true).NumberOfMonths(2))

</div>

<input id="buton1" type="submit" value="Cauta camere libere" />

} <script type="text/javascript"> $(document).ready(function() { $.validator.addMethod("EndDate", function (value, element) { var startDate = $('.StartDate').val(); return Date.parse(startDate) <= Date.parse(value); } , "* End date must be after start date"); $('.form').validate(); }); </script>
1
Ik krijg geen enkele fout, het maakt gewoon de validatie niet aan
toegevoegd de auteur jonny, de bron
Wat is de fout die je krijgt?
toegevoegd de auteur Leniel Macaferi, de bron
Probeer de code die ik heb gepost als een antwoord en laat me weten of dit voor jou werkt ... Je huidige code geeft je waarschijnlijk ergens fouten. Om de fout (en) te zien, kunt u de jQuery-code met behulp van Firebug bijvoorbeeld debuggen: getfirebug.com
toegevoegd de auteur Leniel Macaferi, de bron

1 antwoord

Probeer dit in plaats daarvan:

jQuery.validator.addMethod("greaterThan", 
function(value, element, params) {

    if (!/Invalid|NaN/.test(new Date(value))) {
        return new Date(value) > new Date($(params).val());
    }

    return isNaN(value) && isNaN($(params).val()) 
        || (Number(value) > Number($(params).val())); 
},'Must be greater than {0}.');

Gebruik het op deze manier:

$(".EndDate").rules('add', { greaterThan: ".StartDate" });

en

$("form").validate({
    rules: {
        EndDate: { greaterThan: ".StartDate" }
    }
});
0
toegevoegd