おはようございます。
何らかの理由で、モデルのドロップダウン リストにサーバー側の検証レイヤーがあります。
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (SomethingVisible && DropDownListSelection == 0)
{
yield return new ValidationResult("Please make a selection", new[] { "DropDownListSelectionId"});
}
}
<div class="editor-field">
@Html.DropDownListFor(x => x.DropDownListSelectionId, new SelectList(Model.DropDownListSelection, "DropDownListSelectionId", "DropDownListSelectionName"))
<br />
@Html.ValidationMessageFor(model => model.DropDownListSelectionId)
</div>
これは問題なく機能し、!Model.IsValid の場合に適切な検証エラーが表示されます。素晴らしい。
ただし、一部のフォームは非常に背が高く (わかっています、厄介です)、この検証が行方不明になる可能性があります。つまり、検証エラーを表示するには下にスクロールする必要があるため、スクロールを好まない人もいます。
そのため、jquery/javascript を使用して、検証された要素にフォーカスを設定したいのですが、どうすればこれを行うことができますか?
厚かましい質問で申し訳ありません。