我有一个包含输入字段占位符的表单。它使用 html5 占位符属性和 javascript 占位符后备。我像这样使用不显眼的验证:
[DisplayName("")]
[Required(ErrorMessage = "Please enter a name")]
[StringLength(maximumLength: 20, MinimumLength = 1, ErrorMessage = "max length is 20 chars.")]
public string UserName { get; set; }
[DisplayName("")]
[Required(ErrorMessage = "Please enter a comment.")]
[StringLength(maximumLength: 350, MinimumLength = 1, ErrorMessage = "max length is 350 chars.")]
public string CommentText { get; set; }
问题是在使用 IE 时,占位符在输入字段中被计为字符,因此没有验证,并且可以在不输入任何内容时提交表单。
有什么方法可以向限制指定字符串的 UserName 注释添加条件。例如“在此处输入用户名..”
如果可能的话,我想避免编写自定义属性验证器。
提前致谢。
编辑。使用正则表达式解决:
[RegularExpression("^((?!My_Placeholder_Text).|\n)*$", ErrorMessage = "Please enter text")]