任何人都可以告訴我這段代碼有什麼問題嗎?我試圖在允許用戶輸入時將datepicker日期的日期驗證爲mm/dd/yyyy。我使用了建議給我的驗證代碼,並在其中有一些其他代碼,以確保當他們向下鼠標或按下Tab鍵(如果他們根本沒有放入日期)彈出式日曆消失。帶有日期驗證的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;
});
}
什麼日期選擇器插件,您使用的?爲什麼你不只是使用客戶端驗證? –
我正在使用bootstrap-datepicker.js。我對asp.net非常陌生......我在模型中使用了DataFormatString =「{0:MM/dd/yyyy},但客戶端想要強制用戶輸入4位數的年份。你的意思是客戶端驗證的意思是什麼?我嘗試了正則表達式,但是找不到一個可以工作的字符串,而且客戶端想要下拉日曆,我歡迎任何幫助! –
如果你綁定的屬性是'DateTime',而你已經啓用了客戶端驗證(包括'jquery.validate.js'和'jquery.validate.unobtrusive.js')並且包含了@@ Html.ValidationMessageFor(m => m.yourDateProperty)',那麼所有這些都是在框外處理的(你不需要任何這個) –