我有一个MVCV5项目的数据注释,它在大多数情况下都能正确验证。但是,如果用户仅输入空格(例如4个空格),则验证不会在客户端捕获它(尽管验证会在发布时捕获它)。有没有办法让这些在客户端正确验证?
[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
答案 0 :(得分:0)
我建议使用IValidateObject进行模型级验证,然后使用IsNullOrWhiteSpace属性验证空字符串/空/空格。
public class Model : IValidatableObject
{
public string FirstName { get; set; }
}
public IEnumerable<ValidationResult>Validate(ValidationContext validationContext)
{
if (String.IsNullOrWhiteSpace(FirstName))
{
yield return new ValidationResult("First Name Required", new string[] { "FirstName" });
}
}
答案 1 :(得分:0)
好吧,如果您将输入限制为3个字符,快速的方法是使用<input type='text' maxlength="3"...
明确说明:
required
对于空格(仅限),jquery validate应该使用<div ng-controller="MyTextbox">
<p>Fecha de ultima actualizacion: {{nodeID1}} </p>
来捕获它。 HTH
答案 2 :(得分:0)
我能够通过查看&#34;可选&#34;来解决这个问题。功能
可选功能(根据此博文): http://lagod.id.au/blog/?p=514&cpage=1#comment-213145不告诉您该字段是否可选。它只是告诉你该字段是否为空。
可选功能返回:
!$.validator.methods.required.call( this, val, element ) && "dependency-mismatch";
所以我查看了所需的方法,并注意到它在检查字段长度之前修剪字段值。
这是一个简单的修复,因此不是返回:
$.trim( value ).length > 0;
我把它设置为返回:
value.length > 0;
即使您只输入一个空格,也会导致它验证字段。所以现在我的zipcode验证你是否输入了一个空格,因为它应该只允许数字。