1

我记得几年前不得不处理这种情况,从我在网上的情况来看,它真的没有变得更容易。

我有两种可能的情况。一,是用户在退出输入框后希望看到刚刚输入的数字用逗号格式化的地方。另一个是用户想要实际输入逗号的地方。

这两种情况都使验证和处理将数据作为十进制传递到后端更有趣。我意识到这可以通过各种可能性来完成,例如 keyup/keydown/blur/focus 事件;使用自定义验证等修改 jQuery 验证器。但这似乎暗示了一堆潜在的新功能和新的地方,以便在不同的浏览器上出错。我们在处理这些事件的过程中获得了很多乐趣,比如模糊/keyup 在不同浏览器中的反应,这可能有点像噩梦一样。

我们当前的视图使用 HTML 5 。这有助于验证和输入,而无需大量编码。如果可能,我们希望继续使用这种类型的输入。

用户可能还希望不允许输入小数(对于某些类型的数量输入)。

此外,该解决方案需要同时适用于 IE8 和 Safari(适用于 iPad)。目前,我们对恰好适合 iPad 足迹的所有页面都有一个单一的视图。

是否有任何优雅而简单的解决方案来处理此类请求?

4

1 回答 1

2

Asp.Net MVC 允许您使用 jQuery 不显眼的验证,这将为您处理繁重的跨浏览器支持。

您可以使用 Remote 属性装饰您的视图模型属性,然后它会告诉浏览器验证脚本(同样,无需您编写代码)调用该字段的控制器/操作。然后,您创建该控制器/操作并在那里进行验证(您可以简单地尝试解析数字)并在失败时发回一条消息。

我建议这样做的原因仅仅是因为远程验证已经是一个已知的、可以工作的东西,而且你在服务器上写的任何东西都不会影响任何客户端。您可以在验证中随心所欲,而无需测试 JavaScript。

这是远程验证的介绍- 不要惊慌,有很多文本,代码的编写方式使它看起来比实际更复杂。

启动一个新项目,你应该在 15 分钟内完成它。

最好的祝福。

编辑 如果您确实想使用客户端解决方案,请尝试一些预先构建和社区支持的东西,例如autoNumeric

于 2012-09-07T17:10:47.990 回答