如何在不使用区域设置的情况下格式化NumberTextBox?

时间:2015-08-07 10:37:34

标签: dojo formatting number-formatting

我正在使用道场的 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 个答案:

答案 0 :(得分:2)

你的猜测是正确的。您需要使用pattern{pattern: '#,###.##'}
您可以在实时文档中找到更多详细信息: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" />
&#13;
&#13;
&#13;