首页 > 解决方案 > 在 IE 中为 cshtml 获取输入类型编号中的逗号

问题描述

我们在 cshtml 页面中输入了类型号。它在表单验证时在 chrome 中工作正常。但在 Internet Explorer (IE) 中,它在数字字段中接受逗号 (,) 并将其与逗号一起保存。请建议。

cshtml代码:

@Html.TextBoxFor(m => m.xxx, null, new { @class = "form-control", @required = "required", @type = "number", @step = "0.01", @id = "xxx" })

IE截图在此处输入图像描述

在 IE 中,我们可以输入逗号并接受它的值。

铬截图在此处输入图像描述

在这里,我们不允许输入逗号。

在 IE 中我也不想要逗号。这有什么限制吗?

标签: asp.net-mvcasp.net-corerazor

解决方案


您可以尝试使用表单验证。并使用如下输入(不使用 @Html.TextBoxFor)。我有一个模型,它有一个属性 Id,这是一个演示:

看法:

<form id="myform" method="post">
    <input name="Id" type="number" step="0.01" class = "form-control"/>
    <input type="submit" value="submit" />
</form>

js:

<script src="~/lib/jquery-validation/dist/jquery.validate.min.js"></script>
<script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js"></script>
<script>
        $(function () {
            $("#myform").validate({
                rules: {

                    Id: {
                        required:true,

                        doubles: true

                    },


                },

                messages: {

                    Id: {

                        //doubles: "You can only enter numbers and dot"
                       

                    },

                }
            })
        })
        $.validator.addMethod("doubles", function (value, element, params) {
            var doubles = /^[0-9]*([.][0-9]{1,2})?$/;
            return this.optional(element) || (doubles.test(value));
        }, "You can only enter numbers and dot"); 
</script>

结果: 在此处输入图像描述


推荐阅读