我有一个包含输入字段占位符的表单。它使用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注释添加条件。例如“在此处输入用户名...”
如果可能的话,我想避免编写自定义属性验证器。
提前致谢。
EDIT。 使用正则表达式解决:
[RegularExpression("^((?!My_Placeholder_Text).|\n)*$", ErrorMessage = "Please enter text")]
答案 0 :(得分:3)
如何使用regex属性来确保您要查找的字符串不在提交的字符串中? 以下问题包含完成该任务的表达式示例: RegEx to exclude a specific string constant