我有一個MVCV5項目的數據註釋,它在大多數情況下都能正確驗證。但是,如果用戶只輸入空格(例如4個空格),驗證不會在客戶端捕獲它(儘管驗證會在發佈時捕獲它)。有沒有辦法讓這些在客戶端正確驗證?當輸入是所有字符串時,MVC DataAnnotation MaxLength失敗
[StringLength(3, ErrorMessage = "Must be under 3 characters")]
[RegularExpression(@"^[0-9]{0,3}$", ErrorMessage = "Area code should be 3 digits only")]
public string AreaCode { get; set; }
我使用下列庫:
jQuery.Validation: version 1.13.1
Microsoft.jQuery.Unobtrusive.Validation: version 3.2.3
就jQuery Validate插件而言,只包含四個空格的字段仍然被視爲空。但是,在驗證'minlength'時,只有在非空字符的情況下才會計算前導空格。沒有其他技巧或解決方法。如果您認爲這是一個錯誤,或者它的工作方式不同,那麼您必須在他的GitHub頁面上聯繫開發人員。 http://jsfiddle.net/Lst6puxc/ – Sparky
斯帕基,我認爲你是對的。 jquery.validate.js文件有兩個地方:「this.optional(element)」,但應該查找「(this.optional(element)== true)」。我把它放在兩個地方,然後驗證工作。當字段只有空格時,「this.optional(element)」調用返回「依賴不匹配」。 – GnomeCubed
看起來他們修復了這個問題。 https://github.com/jzaefferer/jquery-validation/issues/1498 – GnomeCubed