我记得多年前不得不处理这种情况,而且从我在网上看到的情况来看,它真的没有变得容易。
我有两种可能的情况。一,用户想要在退出输入框后看到用逗号格式输入的数字。另一个是用户想要实际输入逗号的地方。
这两种情况都会使得验证和处理将数据作为Decimal传递给后端更有趣。我意识到这可以通过各种可能性来完成,例如keyup / keydown / blur / focus事件;使用自定义验证等修改jQuery验证器。但这似乎意味着一堆潜在的新功能和新的地方让事情在不同的浏览器上出错。我们在处理这些事件时有很多乐趣,比如模糊/键盘在不同浏览器中的反应,而且可能有点噩梦。
我们当前的观点使用HTML 5。这有助于验证和输入,无需大量编码。如果可能,我们希望继续使用这种类型的输入。
用户可能还希望不允许输入小数(对于某些类型的数量输入)。
此外,该解决方案需要在IE8和Safari(适用于iPad)上运行。目前,我们的所有页面都有一个适合iPad足迹的单一视图。
是否有任何优雅而简单的解决方案来处理此类请求?
答案 0 :(得分:2)
Asp.Net MVC允许您使用jQuery不显眼的验证,它将为您提供繁重的跨浏览器支持。
您可以使用Remote属性修饰您的视图模型属性,然后该属性将告诉浏览器验证脚本(同样,无需编写代码)来调用该字段的控制器/操作。然后,您创建该控制器/操作并在那里进行验证(您可以简单地尝试解析该数字)并在事情失败时发回消息。
我建议这样做的原因仅仅是因为远程验证已经是一个已知的工作事物,而且你在服务器上写的任何内容都不会影响任何客户端。您无需测试JavaScript即可在验证过程中尽情享受。
这是一个intro to remote validation - 只是不要惊慌,有很多文本和编写代码的方式使它看起来比实际更多。
启动一个新项目,你应该在15分钟内完成。
最好的问候。
修改强> 如果您做想要使用客户端解决方案,请尝试使用预构建和社区支持的内容,例如autoNumeric。