在使用C#的asp.net-mvc项目中,我使用了一个函数来为较大的数字添加逗号格式,例如
1,000,000
,感谢这篇文章。function numberWithCommas(str) {
return str.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}
问题是,我的输入已经被限制为只接受最小值为零的数字。
<input type="number" min="0" class="myclass" value="@somevalue" />
使用JS可能会遇到问题,因为它只需要数值输入。这让我想到了这样一个问题:如何使HTML的输入标签只接受数值?,这里也提供了JS解决方案。
我想知道是否有人开发了优雅的方法来格式化数字输入显示,同时验证数字输入,这里还有其他可用的选项吗?它不一定要纯粹是JS解决方案。
@Html.NumericInputFor(m => m.SomeNumber)
生成一个“透明”的文本框和一个“格式化”的底层。当您在文本框中按Tab键时,它变得不透明,并且只接受数字和小数分隔符。当您按Tab键时,您将看到格式化的数字。 - user3559349ModelBinder
(如果没有,由于存在 “,” 字符,当您提交时它将无法绑定到您的模型)? - user3559349<div class="numeric-container" ....>....</div>
元素是由@Html.NumericInputFor(m => m.Price)
方法为en-US文化创建的)。 - user3559349HtmlHelper
扩展方法中的代码,这将使它变得太长,并且只包含源代码链接的答案将被删除 :)但是如果你愿意可以在你的答案中提到它。我希望这个周末能写好GitHub上的README文件 :) - user3559349