【问题标题】:Allow int numbers in @textboxfor with no comma or point允许在 @textboxfor 中使用不带逗号或点的整数
【发布时间】:2020-10-22 14:27:36
【问题描述】:

所以我创建了一个带有@html.textbox 的 Razor 页面,我希望只允许数字。我将类型更改为数字,但在测试时,它仍然会接受逗号和点。我尝试了一些 onchange 函数来从该文本框中获取值,将所有逗号或点替换为空,然后返回到同一个文本框。我设法使用仅用于测试的第二个文本框来做到这一点,但我不想要这种行为。我希望 textboxfor 具有与尝试键入任何字母时相同的行为。也就是说,什么都不做。我刚开始学习 C#/Asp.net,在 google 上找不到任何东西。也许我没有在寻找正确的名字,所以任何关于我应该研究什么的提示或方向将不胜感激。

【问题讨论】:

    标签: asp.net asp.net-mvc razor


    【解决方案1】:

    我实际上发现了一些完美的东西。以防万一有人想使用它。

    首先我创建了 TextboxFor 并删除了数字类型:

    @Html.TextBoxFor(i => i.price, new {  @id = "amount", @onInput = "javascript: replaceComma('amount'); "})
    

    然后我添加了这个 javascript 来用空值替换任何非数字字符:

    <script type="text/javascript">
    function replaceComma(i) {
            var val = document.getElementById(i).value;
            val = val.replace(/[^0-9]+/g, '')
            document.getElementById(i).value = val;
        }
    </script>
    

    我不确定这是不是最好的方法,但它现在似乎有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-05
      • 1970-01-01
      • 1970-01-01
      • 2017-04-28
      相关资源
      最近更新 更多