使用不显眼的验证处理占位符

时间:2012-08-09 11:33:06

标签: asp.net-mvc unobtrusive-validation

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

1 个答案:

答案 0 :(得分:3)

如何使用regex属性来确保您要查找的字符串不在提交的字符串中? 以下问题包含完成该任务的表达式示例: RegEx to exclude a specific string constant