2014-03-04 43 views
0

在MVC-4.5網站的剃刀語法形式中,用戶可以輸入歷史日期,如果他們輸入5/6/48,即1948年或1848年,系統會將年份更改爲2014年。有沒有辦法要更改客戶端即用型驗證,因此需要4位數的年份?如果沒有,我的選擇是寫另一塊jquery比較輸入到正則表達式。尋求將輸入限制爲4位數年份的最佳方法?

回答

0

爲改變客戶端的日期驗證器而需要4位數的年份沒有提供任何答案,我寫了下面的jquery,它似乎與開箱即用的驗證器並行工作 - 可能是因爲MVC的使用keyUp和我的使用模糊:

$("#BirthDate").blur(function() { 
    var x = $(this).val(); 
    if (x.length > 0) { 
     var idx = x.lastIndexOf("/"); 
     var sbs = x.substring(idx + 1, x.length); 
     if (sbs.length < 4) { 
      alert("Year must be 4 digits long"); 
     } 
    } 
}); 
0
[DisplayFormat(ApplyFormatInEditMode = true, 
       DataFormatString = "{0:dd/MM/yyyy}")] 

//請調整白天和幾個月你的文化,不能推導出是從你的問題

什麼假設這是一個jQuery日期選擇比你可以爲它指定格式:

$(function(){ 
     $('.datepicker').datepicker({dateFormat: 'MM-dd-yyyy'}); 
}); 
+0

文化是默認(美國)並按照您的建議放入註釋,但MM/dd/yyyy確實不會導致客戶端驗證器調用4位數的年份。如果用戶輸入2位數年份,系統將在2014年投入使用。 – JaneH

+0

@JaneH更新了答案,還有其他可能感興趣的datepicker選項。日期範圍等 – dove

+0

它不是日期選擇器,因爲年份可能在1600年到2014年之間。它是一個剃刀編輯器,它也可以是一個文本框 – JaneH

相關問題