Может ли кто-нибудь сказать мне, что не так с этим кодом? Я пытаюсь проверить дату на дате datepicker на mm/dd/yyyy, когда разрешаю вход пользователя. Я использовал код проверки, который был предложен мне, и у меня есть другой код, чтобы убедиться, что всплывающий календарь исчезнет, когда они курсируют или нажмите клавишу табуляции (если они вообще не помещают дату).ASP.net MVC Datepicker с датой проверки
$(function() {
$('.datepicker2').datepicker()
.on('changeDate', function (ev) {
$('.datepicker2').datepicker('hide');
});
ForceDatePickerFormat();
});
function ForceDatePickerFormat(dateValue) {
$('.datepicker2').on('keydown', function (e) {
var keyCode = e.keyCode || e.which;
if (keyCode == 9) {
$('.datepicker2').datepicker('hide');
}
});
$(".datepicker2").on("blur", function (e) {
var selectedDate = dateValue;
if(selectedDate == '')
return false;
var regExp = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/; //Declare Regex
var dateArray = selectedDate.match(regExp); // is format OK?
if (dateArray == null){
return false;
}
month = dateArray[1];
day= dateArray[3];
year = dateArray[5];
if (month < 1 || month > 12){
return false;
}else if (day < 1 || day> 31){
return false;
}else if ((month==4 || month==6 || month==9 || month==11) && day ==31){
return false;
}else if (month == 2){
var isLeapYear = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
if (day> 29 || (day ==29 && !isLeapYear)){
return false
}
}
return true;
});
}
Что DatePicker плагин вы используете? И почему вы не просто используете проверку на стороне клиента? –
Я использую bootstrap-datepicker.js. Я довольно новичок в asp.net ... Я использую DataFormatString = "{0: MM/dd/yyyy} в модели, но клиент хочет заставить пользователя ввести 4-значный год. Какие другие варианты? Что конкретно вы подразумеваете под проверкой на стороне клиента? Я попробовал regex, но не смог найти строку, которая сработала. Кроме того, клиент хотел раскрывающийся календарь. Я приветствую любую помощь! –
Если свойство, связанное с именем 'DateTime', и вы активировали проверку на стороне клиента (включая 'jquery.validate.js' и' jquery.validate.unobtrusive.js') и включили '@ Html.ValidationMessageFor (m => m.yourDateProperty)', тогда все это обрабатывается из коробки (вам это не нужно) –