代码之家  ›  专栏  ›  技术社区  ›  JoonasL

使用不引人注目的验证处理占位符

  •  3
  • JoonasL  · 技术社区  · 13 年前

    我有一个表单,它有输入字段的占位符。它使用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")]
    
    1 回复  |  直到 13 年前
        1
  •  3
  •   Community Mohan Dere    8 年前

    使用regex属性来确保您要查找的字符串不在提交的字符串中怎么样? 以下问题有实现这一点的表达式示例: RegEx to exclude a specific string constant