保护UI中的字段不插入字符或不需要的字符(int除外)

本文关键字:字符 不需要 int 除外 插入 UI 字段 保护 | 更新日期: 2023-09-27 17:57:53

我正在构建一个MVC应用程序,目前我遇到了一个麻烦的问题。

所以我有这些代码行:

<div class="editor-label">
            @Html.LabelFor(model => model.m_Number, "OBJ Number")
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.m_Number)
            @Html.ValidationMessageFor(model => model.m_Number)
        </div>

当我在这个页面中打开我的UI时,该字段变成了一种带有箭头的文本框,我可以上下单击它来升级或减少int值;很抱歉描述不好,但我找不到确切的词来形容它。

主要的问题是,我可以编辑该字段,而不是输入数字,我可以写:

abl

当我按下回车键时,它会"保存"。真正的保存还没有发生,因为我还没有向数据库发送任何信息,但我希望我的UI验证在该字段中写入的数据类型,我希望确保那里只写入整数,我不知道如何做到这一点。我需要帮助,因为我需要保护这些字段不插入错误的数据。

在我的课堂上,我已经写过了:

   [Display(Name = "Obj Number")]
        public int m_Number { get; set; }

但这并不能解决任何问题。

有人知道我该怎么做吗?谢谢

保护UI中的字段不插入字符或不需要的字符(int除外)

您可以使用pattern属性并将其设置为只接受数字的正则表达式:

$(function() {
    $('input[type="number"]').attr('pattern', '''d*');
});

不过请记住,这只是用于UI目的。您应该在服务器上执行必要的验证,因为没有什么可以阻止用户简单地使用FireBug并向您的服务器提交他想要的任何值。这根本不应该用于验证目的,而只是为了帮助用户。