1

ValidationMessageForを使用してモデル内に含まれるデータ注釈にアクセスするビューがあり、問題なく動作します。ただし、(標準的な方法として)関連するコントロール以外に検証メッセージを表示する代わりに、ユーザーが検証警告アイコンにカーソルを合わせたときに検証メッセージを表示したいと思います。

これを部分的に機能させることができましたが、ユーザーが検証警告アイコンをクリックする前に、問題のコントロールにフォーカスがある必要があります。そうでない場合、何も表示されません。jQueryを介して検証メッセージを取得することは可能ですか?

モデル:

[Required(ErrorMessageResourceName = "EmailRequiredErrorMessage", ErrorMessageResourceType = typeof(Resources.Languages.Models.RegistrationValidateModel))]
[StringLength(60, ErrorMessageResourceName = "EmailStringLengthErrorMessage", ErrorMessageResourceType = typeof(Resources.Languages.Models.RegistrationValidateModel))]
[Display(Name = "EmailDisplayName", ResourceType = typeof(Resources.Languages.Models.RegistrationValidateModel))]
[RegularExpression(@".+@.+\..+", ErrorMessageResourceName = "EmailInvalidRegularExpressionErrorMessage", ErrorMessageResourceType = typeof(Resources.Languages.Models.RegistrationValidateModel))]
public string Email { get; set; }

意見

@Html.ValidationMessageFor(m => m.Email)

生成されたHTML

<input class="span12" data-val="true" data-val-length="You must enter an email address less than 60 characters long" data-val-length-max="60" data-val-regex="You must enter a valid email address" data-val-regex-pattern=".+@.+\..+" data-val-required="You must enter an email address1" id="Email" name="Email" type="text" value="" />

..。

<span class="field-validation-valid" data-valmsg-for="Email" data-valmsg-replace="true"></span>

現在、検証後、ホバーはエラーメッセージの取得に失敗します

ここに画像の説明を入力してください

ただし、コントロールフォーカスを指定してから、検証警告アイコンをクリックすると、メッセージが表示されます(わずかに異なる位置にありますが)。

ここに画像の説明を入力してください

4

1 に答える 1

0

コントロールにフォーカスがあるかどうかに関係なく、jQueryを使用して属性にアクセスすることは問題なく機能するはずです。試す

$("#Email").attr("data-val-required")
于 2013-02-04T00:16:51.870 に答える