2

我正在尝试在 asp .net mvc3 中为印度构建一个应用程序。我使用 jQuery 全球化来验证印度格式的数字。

我的代码如下:

<script src="@Url.Content("~/Scripts/jquery.globalize/globalize.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.globalize/cultures/globalize.culture.hi-IN.js")" type="text/javascript"></script>
<script type="text/javascript">
    $.validator.methods.number = function (value, element) {
        return !isNaN(Globalize.parseFloat(value));
    }

    $(document).ready(function () {
        Globalize.culture('hi-IN');
    });
</script>

这是基于以下SO问题:

MVC 3 jQuery 验证/数字/十进制字段的全球化

它完美地工作。但是,由于此代码,有 2 个新错误:

1) 我有两个输入字段 Area 和 SuperBuiltUpArea - Area 是必填字段,SuperBuiltUpArea 不是。jQuery 验证不允许我提交表单,因为它不接受 SuperBuiltUpArea 字段的 null(empty) 条目并抛出该字段应该是数字的错误。

编辑:此问题已通过将验证器语句替换为

this.optional(element) || !isNaN(Globalize.parseFloat(value));

2) 如果我在这些字段中输入字母,jQuery 验证不会启动。但是,它不允许我提交表格。但这非常令人困惑,因为表单没有显示错误但不会提交。

任何帮助将不胜感激。

谢谢

4

1 回答 1

0

我总结了你在编辑评论中所说的话。

只需更换:

<script type="text/javascript">
    $.validator.methods.number = function (value, element) {
        return !isNaN(Globalize.parseFloat(value));
    }
</script>

经过

<script type="text/javascript">
    $.validator.methods.number = function (value, element) {
        return this.optional(element) || !isNaN(Globalize.parseFloat(value));
    };
</script>
于 2013-08-28T12:17:10.520 回答