4

Ich entwickle derzeit eine MVC Asp.Net 4.6 WebApp mit Bootstrap 3.1.1, Eonasdan datetime picker v4.7.14 und jquery validation plugin v1.14.0.Validate Datum und Datetime mit Bootstrap Datetime Picker, Jquery Validierung Plugin in einer Asp.Net MVC4 Anwendung

Und ich habe ein Problem mit der Validierung des Datums.

  • Mein Modell sieht so aus:

    public class PersonModel{ 
        ... 
    
        [Required] 
        [Display(Name = "Date of Birth")] 
        public DateTime? DateOfBirth { get; set; } 
    
        ...   
    } 
    
  • Meine Ansicht sieht wie folgt aus:

    <div class="form-group"> 
        @Html.LabelFor(x => x.DateOfBirth): 
        <span class="text-danger"><b>*</b></span> 
        <div class="input-group datepicker"> 
         <span class="input-group-addon"> 
          <span class="glyphicon glyphicon-calendar"></span> 
         </span> 
         @Html.TextBoxFor(x => x.DateOfBirth, new {@class = "form-control", @data_date_format = "DD/MM/YYYY", @placeholder = "DD/MM/YYYY"}) 
        </div> 
        @Html.ValidationMessageFor(x => x.DateOfBirth, "", new { @class = "text-danger" }) 
    </div> 
    
  • Der zugehörige Code Js th Datetime Picker init:

    (function() { 
        // Init bootstrap date/time pickers 
        $(".datepicker").datetimepicker({ 
         useCurrent: false 
        }); 
    })(jQuery); 
    

    uns jQuery.validator ing, auch wenn das das Datum sieht gut aus, ich bekomme immer diese Fehlermeldung:

    enter image description here

    Ich weiß, dass jQuery.validator mit dem jquery.ui.datepicker funktioniert gut, aber wie kann ich es mit dem Bootstrap arbeiten. datetimepicker?

Antwort

7

können Sie überschreiben die date Methode der Jquery.validator Plugin:

(function() { 
    // overrides the jquery date validator method 
    jQuery.validator.methods.date = function (value, element) { 
     // All dates are valid.... 
     return true; 
    }; 
})(jQuery); 

Da die bootstrap datetime picker Verwendung moment.js, können Sie überprüfen, ob das Datum so gilt:

(function() { 
    // overrides the jquery date validator method 
    jQuery.validator.methods.date = function (value, element) { 
     // We want to validate date and datetime 
     var formats = ["DD/MM/YYYY", "DD/MM/YYYY HH:mm"]; 
     // Validate the date and return 
     return moment(value, formats, true).isValid(); 
    }; 
})(jQuery, moment);