假设我有一个像这样的字段:
<div class="form-group">
<label for="fullname" asp-for="UserName">Username</label>
<input class="form-control"
type="text" name="username"
required asp-for="UserName">
<span asp-validation-for="UserName"></span>
</div>
在控制器内部,我添加了此错误:
ModelState.AddModelError("username", "username already registered");
现在,我想将焦点放在该input
字段上,并且我想应用一个红色边框,是否只能通过MVC
?
当模型验证失败并返回同一视图时,框架会将input-validation-error
CSS类添加到验证失败的输入元素中。在您的情况下,您正在向该UserName
字段添加错误消息,因此您的UserName
字段输入将获得此新的CSS类。
<input class="form-control input-validation-error" type="text" name="username"
required="" id="UserName" value="some value">
您可以根据需要向此CSS类添加所需的任何样式。
.input-validation-error
{
border-color:red;
}
现在将焦点设置在特定的输入字段上有些棘手。服务器代码无法做到这一点。您必须在客户端执行此操作。但是,如果表单中有多个字段验证失败,那么您要关注哪个字段?第一个,第二个?最后一个 ?
这是一个快速示例,重点介绍input-validation-error
CSS类的第一个输入元素。JavaScript代码在jquerydocument.ready
事件上执行。
$(function () {
$("input.input-validation-error").first().focus();
});
如果要设置验证助手(<span asp-validation-for="UserName"></span>
)呈现的验证错误消息的样式,请遵循相同的方法。如果验证失败,则框架会将此span元素的CSS类更改为field-validation-error
(从field-validation-valid
)。因此,您要做的就是将所需的样式定义添加到该CSS类。
.field-validation-error
{
color:red;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句