我有一个表单,它有输入字段的占位符。它使用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")]