在不显眼的验证失败时向元素添加自定义CSS

时间:2017-09-16 12:45:50

标签: asp.net-mvc unobtrusive-validation

我在尝试验证失败时尝试将CS​​S类添加到文本框中。

@Html.TextBoxFor(x => x.AdminUser.Username, new
{
    @id = "Username",
    @name = "Username",
    @type = "text",
    @class = "form-control",
    @placeholder = "Kullanıcı Adı",
    @autocomplete = "off"
})
@Html.ValidationMessageFor(x => x.AdminUser.Username, null, new { @class = "text-danger text-12 pl-10" })

是否可以添加回调?或者其他方面?

我的解决方案:

覆盖onError类的不显眼的验证源js就可以了。现在我可以访问上面的div元素。

    if (replace) {
        container.empty();
        error.removeClass("input-validation-error").appendTo(container);
        error.closest("div").addClass("has-error");
    }

1 个答案:

答案 0 :(得分:1)

验证失败时,input将添加input-validation-error类。因此,您可以使用自定义样式覆盖此类:

.input-validation-error {
    // your styles
}

如果您将上述style添加到您的网页,则会影响所有输入。因此,如果您想要定位特定元素,可以添加custom-error-message

.custom-error-message.input-validation-error{
    // error styles
}

然后在你要定位的TextBox中:

@Html.TextBoxFor(x => x.AdminUser.Username, new { @class = "custom-error-message form-control"})

现在,您的自定义错误样式将仅添加到输入custom-error-message类的人。