首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >剃须刀页面显示隐藏输入的验证

剃须刀页面显示隐藏输入的验证
EN

Stack Overflow用户
提问于 2020-12-12 17:45:00
回答 1查看 554关注 0票数 0

我试图为小数点提供用户友好的输入(百分比),并能够验证。我被卡住了,因为如果关联的输入是隐藏的,asp-验证-for将不会显示。

当前的技术是将autonumeric.js用于仅显示字段上的客户端格式,该字段被复制到要保存到db的字段中。

如何获得要显示的验证消息?

LoanEstimate.cs

代码语言:javascript
复制
[NotMapped]
public string RateDisplayOnly { get; set; }

[Range(0,1,ErrorMessage="Rate must be between 0.000% and 100.00%")]
[DisplayFormat(DataFormatString = "{0:p}")]
[Required]
public decimal? Rate { get; set; }

Create.cshtml

代码语言:javascript
复制
    <div class="form-group">
        <label asp-for="LoanEstimate.Rate" class="control-label"></label>
        <input asp-for="LoanEstimate.RateDisplayOnly" class="form-control autonumeric-display-only autonumeric-percent" />
        <input asp-for="LoanEstimate.Rate" class="form-control" type="hidden"/>
        <span asp-validation-for="LoanEstimate.Rate" class="text-danger"></span>
    </div>

Javascript

代码语言:javascript
复制
$(document).ready(function ($) {

    //autonumeric.js field formatting
    const anElement = AutoNumeric.multiple('.autonumeric-currency', {
        currencySymbol: "$"
    });

    const anElement2 = AutoNumeric.multiple('.autonumeric-percent', {
            decimalPlaces: 3,
            rawValueDivisor: 100,
            suffixText: "%"
        }
    )
    $(".autonumeric-display-only").on('keyup', function () {
        var str = this.id
        var getThis = str.substring(0, str.indexOf("DisplayOnly"))
        $("#" + getThis).val(AutoNumeric.getNumericString("#" + this.id));
    });
    
});

问题

当隐藏LoanEstimate.Rate的输入时,不显示验证消息

注意:在没有隐藏的情况下,它是否正确显示?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-14 02:37:08

使用$.validator.setDefaults,下面是一个演示:

查看:

代码语言:javascript
复制
<form method="post">
    <div class="form-group">
        <label asp-for="Rate" class="control-label"></label>
        <input asp-for="RateDisplayOnly" class="form-control autonumeric-display-only autonumeric-percent" onblur="validateRate()"/>
        <input asp-for="Rate" class="form-control" hidden />
        <span asp-validation-for="Rate" class="text-danger"></span>
    </div>
    <input type="submit" value="submit" />
</form>

联署材料:

代码语言:javascript
复制
function validateRate() {
        $("#Rate").valid();
    }
$.validator.setDefaults({
            ignore: [],
            // other default options
        });
        $(document).ready(function ($) {

            //autonumeric.js field formatting
            const anElement = AutoNumeric.multiple('.autonumeric-currency', {
                currencySymbol: "$"
            });

            const anElement2 = AutoNumeric.multiple('.autonumeric-percent', {
                decimalPlaces: 3,
                rawValueDivisor: 100,
                suffixText: "%"
            }
            )
            $(".autonumeric-display-only").on('keyup', function () {
                var str = this.id
                var getThis = str.substring(0, str.indexOf("DisplayOnly"))
                $("#" + getThis).val(AutoNumeric.getNumericString("#" + this.id));
            });

        });

结果:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65267966

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档