【问题标题】: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>
我不确定这是不是最好的方法,但它现在似乎有效。