如何在不使用语言环境的情况下格式化 NumberTextBox?

Posted

技术标签:

【中文标题】如何在不使用语言环境的情况下格式化 NumberTextBox?【英文标题】:How to format the NumberTextBox without using locale? 【发布时间】:2015-08-07 10:37:34 【问题描述】:

我正在处理 dojo 的 NumberTextBox,我必须在不使用语言环境的情况下格式化金额字段。为了做到这一点,我尝试了约束和模式,但是,我无法达到预期的输出。

下面是预期的输出,

例如,如果用户输入,

(i) 1234 - 然后 onblur 它应该将其格式化为 1,234.00

(ii) 1234.3432 - 然后 onblur 它应该将其格式化为 1,234.34

(iii) 1234.3489 - 然后 onblur 它应该将其格式化为 1,234.35

(iv) 1234.3 - 然后 onblur 它应该将其格式化为 1,234.30

有人可以帮我解决这个问题吗?

编辑: 数字可以是任何值(即数百、数千和数百万),并且该模式也应该能够处理逗号分隔符。

【问题讨论】:

【参考方案1】:

你的猜测是正确的。你需要使用patternpattern: '#,###.##' 您可以在实时文档中找到更多详细信息:http://livedocs.dojotoolkit.org/dijit/form/NumberTextBox

require(["dijit/form/NumberTextBox", "dojo/domReady!"], function(NumberTextBox)
    var myNumberTextBox = new NumberTextBox(
          name: "test",
          constraints: pattern: '#,###.##'
    , "test");
    myNumberTextBox.startup();
);
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"></script>
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/resources/dojo.css"> 
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.10.4/dijit/themes/tundra/tundra.css">

<input id="test" type="text" />

【讨论】:

感谢您的回答!我不确定这个数字。它可以是任何东西(即数百、数千等)。如何创建一个模式来处理它(尤其是分隔符)? 我不确定你的意思。可以给点样品吗? 数字可以是任何值。但是该模式应该处理逗号分隔符。例如。 123,456,789.00 @VijinPaulraj 我已经更新了答案。使用# 就可以了

以上是关于如何在不使用语言环境的情况下格式化 NumberTextBox?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不使用语言环境模块的情况下获取国际货币符号?

C# - 如何在不改变 DateTime 格式的情况下改变文化

如何在不使用表格格式化的情况下呈现获取的数据?

如何在不使用环境参数的情况下解决 GitHub 操作中的文件

在不更改 Windows 区域设置的情况下更改应用程序的区域设置

springdoc-openapi 如何在不更改 toString 的情况下使用 @JsonValue 枚举格式?