当前位置: 首页 > 知识库问答 >
问题:

用点替换十进制逗号的数字输入

胡浩瀚
2023-03-14

在使用“number”类型和值“1,5”的输入发布表单后,浏览器(Chrome 43.0.2357.130,FF 38.0.5)发送带有点作为小数分隔符的数字,但输入具有属性lang=“cs”(在捷克共和国,我们使用十进制逗号),因此对于ASP。NETMVC的格式不正确。

如何设置浏览器(表单/输入)以发送用户真正填写的内容(在我的示例中为“1,5”)?

从浏览器发送的表单数据:

__RequestVerificationToken:KJG1yJxm-1EcUHPwgvr0gPpkyoEHHHcTfSu6hHvaKDA_XKHTzWfPfUJtAr11gNiR_euG_jWYmXlrMO7dyhSf7g4K74eOVTtEzLQ1OdrTLZ_cbIyyYj5vrgxlk81JzuhM0
PaymentMethodId:8
PaymentMethod:Direct payment
Provider:Direct payment
MinAmount:1,00000000
MaxAmount:5000,00000000
Amount:1.5

共有2个答案

颛孙品
2023-03-14

Oukey,看起来我找到了解决方案,但是把它看作是如何处理类似问题的例子...

public class ApolloModelBinder : DefaultModelBinder
{
    protected override void BindProperty(ControllerContext controllerContext, ModelBindingContext bindingContext, PropertyDescriptor propertyDescriptor)
    {
        var request = controllerContext.HttpContext.Request;

        decimal i;
        var value = request.Form[propertyDescriptor.Name];
        if (propertyDescriptor.PropertyType == typeof(decimal) && decimal.TryParse(value, NumberStyles.Any, CultureInfo.InvariantCulture, out i))
        {
            propertyDescriptor.SetValue(bindingContext.Model, i);
            return;
        }

        base.BindProperty(controllerContext, bindingContext, propertyDescriptor);
    }
}
张嘉佑
2023-03-14

支持

但是,不支持的浏览器

恕我直言,这是非常有问题的(而且非常以英语为中心),因为服务器不知道浏览器是否支持

控制发送内容的唯一方法是使用

这也是ASP。NET MVC编辑器(For)将使用

另见http://www.w3.org/TR/2014/REC-html5-20141028/forms.html#input-author-notes.

请注意,Internet Explorer将在用户键入数字输入时发送数字输入,而忽略规范。

 类似资料:
  • 问题内容: 我用来处理AngularJS中的十进制输入。 如果我使用该选项,它几乎可以按预期工作。对于两个小数,输入如“ 100.333”将转换为“ 100.33”。 在我的区域中,逗号用作小数点分隔符,但我网站上的输入应使用点作为小数点分隔符-就像该插件一样。没关系。但是,我希望将“ 100,33”之类的输入转换为“ 100.33”。 我怎样才能做到这一点? 问题答案: 恐怕我不熟悉:( 但是,

  • 问题内容: 给定以下数组,我想用点替换逗号: 我一直在尝试不同的方式,但是我不知道该怎么做。另外,我已将其作为DataFrame导入,但无法应用该函数: 有什么建议如何解决这个问题? 问题答案: 您需要分配的结果,你的工作早在操作不就地,除了可以使用或并用矢量化要做到这一点更快: 这里的关键是分配结果:

  • 用户用十六进制或二进制输入一个数字(必须以0x或0b为前缀,如果没有给出错误信息) 我不能用基数,我只是用整数。parseInt(s) 我不知道怎样才能使这个计划奏效。。请帮帮我,我还缺什么?

  • 是否有一个正则表达式可用于仅用另一个字符替换字符串中的前两个逗号? 我之所以需要它,是因为我正在使用RDF三元组,其中我需要分别处理主语、谓语和宾语。所以我用绳子把它们分成三个部分。split()方法。 这是我需要拆分的字符串示例: [http://dbpedia.org/resource/Tom_Mathisen, http://www.w3.org/2000/01/rdf-schema#com

  • 我在最新的Chrome(35;Win/Android/iOS)和Safari(7;iOS)版本中发现了一个最独特的浏览器功能。如果您有一个带有的数学表单,并且输入一个带有小数点逗号的数字,浏览器将使用该数字进行计算,就像逗号是一个点一样。如果你输入带有小数点的数字,它们会进行正常的计算,但结果会以小数点逗号显示。也就是说,在我的欧洲(即荷兰语)版本中。我不知道美国版本。 如果你觉得难以置信,我做了

  • 当我运行此代码,它给NumberFormatExcure?我如何转换A49D43C5这个数字到十进制在java?