【问题标题】:adding and removing values in text fields set model to empty string ("") instead of null在文本字段中添加和删除值将模型设置为空字符串 ("") 而不是 null
【发布时间】:2021-10-23 17:49:14
【问题描述】:

我的 Angular 11 应用程序中的文本框绑定了数字,表单使用该字段的 null 值初始化,因此文本框不显示任何内容。

            <input type="text"
                   class="form-control currency"
                   id="totalPersons"
                   name="totalPersons"
                   [(ngModel)]="model.totalPersons"
                   #totalPersons="ngModel"
                   (ngModelChange)="onValidateChange()"
                   (blur)="onValidateChange()"
                   oninput="this.value=this.value.replace(/[^0-9]*/g,'');"
                   [allowNegativeNumbers]="false" 
                   mask="separator.0" 
                   thousandSeparator="," 
                   maxlength="5"
                   required>

没有,当我单击保存按钮时,我将模式发送到我的保存函数,对于 totalPersons,我得到预期的空值,并且我的服务器端(C# API)有用于 totalPersons 的 Nullable long 字段,直到此时一切正常。

现在,如果我在文本框中键入一些数字并且他们将其删除(即,将文本框设置为空)并尝试将其保存为 angular 发送“”而不是 null for totalPersons,这会导致 JSON 解析错误,因为服务器端可以为 null长变量它无法解析“”

有什么办法可以解决吗?

客户端变量

totalPersons : 数量;

服务器端变量

公开时间长? TotalPersons{ 得到;放; }

【问题讨论】:

    标签: angular c#-2.0 angular11 jsonparser


    【解决方案1】:

    好像你自己把价值放在那里

    oninput="this.value=this.value.replace(/[^0-9]*/g,'');"

    也许你可以加一张支票?

    oninput="this.value= this.value ? this.value.replace(/[^0-9]*/g,'') : null;"

    【讨论】:

    • 看起来是这个问题,但是添加检查行为是否相同后解决方案不起作用,仍然设置空字符串。
    猜你喜欢
    • 2013-07-12
    • 1970-01-01
    • 1970-01-01
    • 2012-12-29
    • 2016-07-29
    • 1970-01-01
    • 1970-01-01
    • 2011-08-25
    • 2020-01-11
    相关资源
    最近更新 更多