如何将特定样式应用于无效字段?

Charanoglu

假设我有一个像这样的字段:

<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

y州

当模型验证失败并返回同一视图时,框架会将input-validation-errorCSS类添加到验证失败的输入元素中。在您的情况下,您正在向该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-errorCSS类的第一个输入元素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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章