【问题标题】:How do highlight a field but not show the validation message in fluent validation如何在流利的验证中突出显示字段但不显示验证消息
【发布时间】:2016-06-16 01:33:37
【问题描述】:

我有一个验证包装社会安全号码 (ssn) 框。准确地说是三个不同的盒子。理想情况下,我希望有以下行为;如果一个框是空白的,它应该被突出显示为缺少信息,但只有一条消息说明缺少 ssn。

代码:

        RuleFor(m => m.Ssnumber1)
            .NotEmpty()
            .WithMessage("Social security number required");

        RuleFor(m => m.Ssnumber2)
            .NotEmpty()
            .When(m => !string.IsNullOrWhiteSpace(m.Ssnumber1))
            .WithMessage("Social security number required")
            .NotEmpty()
            .When(m => string.IsNullOrWhiteSpace(m.Ssnumber1))
            .WithMessage("I don't want a message just highlight");
     ................ the third ssn box is just the same .............

添加 WithMessage(string.empty) 或任何等效项会导致错误,因为它需要实际消息。但是,如果我不添加任何消息(没有 WithMessage),它不会突出显示该字段。如果我添加一条实际消息,它会显示出来并弄乱验证消息列表,因为一条 ssn 消息就足够了。

我想我可能和这个人有同样的问题:Only highlight required fields without showing an error message

【问题讨论】:

    标签: jquery validation fluentvalidation


    【解决方案1】:

    你可以有一个没有消息的规则,而只是设置有错误的输入。

    通常在您的视图中,具有验证错误的输入将具有以下类“input-validation-error”,您可以简单地将这个 css 规则包含在您的视图中

    input.input-validation-error {
        border: 1px solid red;
    }
    

    这将导致所有存在验证错误的输入以红色突出显示。

    另外你可以做

    .field-validation-error {
        color: red;
    }
    

    如果您还想突出显示验证消息。甚至做一个 display: none 来隐藏它。

    【讨论】:

    • 请不要对多个问题发布相同的答案。如果相同的信息确实回答了两个问题,那么一个问题(通常是较新的问题)应该作为另一个问题的副本关闭。您可以通过voting to close it as a duplicate 表明这一点,或者,如果您对此没有足够的声誉,则可以通过raise a flag 表明它是重复的。否则,请务必针对此问题调整答案,不要将相同的答案粘贴到多个位置。
    猜你喜欢
    • 1970-01-01
    • 2016-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多