3

入力フィールドのプレースホルダーを持つフォームがあります。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")]
4

1 に答える 1

3

正規表現属性を使用して、探している文字列が送信された文字列に含まれていないことを確認するのはどうですか? 次の質問には、それを実現する式の例があります。 特定の文字列定数を除外する正規表現

于 2012-08-09T12:26:29.010 に答える