允许@textboxfor中的整数不带逗号或点

问题描述

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

解决方法

我实际上发现了一些效果很好的东西。以防万一有人要使用它。

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

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

然后,我添加了此javascript以空值替换所有非数字char:

<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>

我不确定这是否是最好的方法,但现在看来似乎可以使用。