我正在为 MVC3 使用 jQuery 不显眼的验证版本 2.0。我也有最新的 jquery.validate (v 1.9)。我有一个带有此代码的弹出表单:
$(document).ready(function () {
$('#createForm').submit(function () {
$.validator.unobtrusive.parse($('#createForm'));
(more)
(第三行是必需的,以便验证由 javascript 添加的表单字段。)
验证工作正常,除了输入到绑定到视图模型中的小数属性的输入标记中的$1,000.00值无效,而1,000.00有效。显然,“$”在验证器眼中将值转换为字符串。
我已经研究了很多小时,但我只发现了另一个类似的问题(也在 SO 上,但没有得到答复)。我不敢相信每个在模式对话框中处理货币值的 MVC3 开发人员都遇到过这种情况,否则我们现在肯定会有一些解决方案,对吧?
我通过创建 DecimalBinder解决了服务器端的问题。现在我需要一个客户端验证的解决方案。我一直在努力研究 jquery.validate.unobtrusive 的 API,但似乎找不到钩子。我不想修改任何标准的 javascript 库。