本篇介绍:如何在mvc中使用html标签保留多位小数

你需要知道:

@html标签的使用: https://blog.csdn.net/pasic/article/details/7093802

js正则参考:https://blog.csdn.net/xinghuo0007/article/details/72675105

前端:Layui

①创建页面  Shared创建文件夹EditorTemplates(必须的,自定义都需要放到此目录下) ,然后添加Razor视图,命名为Number

.net core mvc中input保留多位小数

 具体代码如下:

@using System.ComponentModel.DataAnnotations;
@using System.Reflection;
@{
    //Html.DisplayNameForModel(): [Display(Name = "xx")]
    //ViewData.TemplateInfo.HtmlFieldPrefix: @Html.EditorFor(model => model.DJ, new { Fixed = 2 })

    //保留的小数 传递的参数
    int Fixed = ViewData["Fixed"] == null ? 2 : (int)ViewData["Fixed"];
    //是否非空
    bool readOnly = false;
    readOnly = ViewData["readOnly"] == null ? false : (bool)ViewData["readOnly"];
    string dataRequired = "";
    string keyUp = "";
    try
    {
        var Field = ViewData.ModelMetadata.ContainerType.GetProperty(ViewData.TemplateInfo.HtmlFieldPrefix);
        RequiredAttribute required = (RequiredAttribute)Field.GetCustomAttribute(typeof(RequiredAttribute), false);
        if (required != null)
        {
            dataRequired = "data-val=true data-val-required=" + Html.DisplayNameForModel() + "为必填字段  data-val-number=" + Html.DisplayNameForModel() + "必须是数字";
        }
        if (Fixed == 0) //整数
        {
            keyUp = @"this.value=this.value.replace(/\D/gi,'')";
        }
        else if (Fixed == -1) //不计算小数位
        {
            keyUp = @"this.value=this.value.replace(/[^\d.]/g,'').replace(/^\./g,'').replace(/\.{2,}/g,'.').replace('.','$#$').replace(/\./g,'').replace('$#$','.')";
        }
        else
        {
            keyUp = @"this.value=this.value.replace(/[^\d.]/g,'').replace(/^\./g,'').replace(/\.{2,}/g,'.').replace('.','$#$').replace(/\./g,'').replace('$#$','.').replace(/^(\-)*(\d+)\.(\d{" + Fixed + "}).*$/,'$1$2.$3')";
        }
    }
    catch { }
}
<input class="layui-input input-validation-error" type="text" @dataRequired @(readOnly ? "disabled" : "")
       id="@ViewData.TemplateInfo.HtmlFieldPrefix" name="@ViewData.TemplateInfo.HtmlFieldPrefix"
       aria-describedby="@ViewData.TemplateInfo.HtmlFieldPrefix-error"
       aria-invalid="true" onkeyup=@keyUp>
View Code

相关文章:

  • 2022-01-11
  • 2021-11-18
  • 2022-02-08
  • 2021-12-18
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-05-31
相关资源
相似解决方案