使 dijit.form.currencytextbox 接受小数点后一位的负值

Make dijit.form.currencytextbox accept negative value with one digit after decimal

我正在使用 dijit.form.currencytextbox 并希望允许负值。当我给出值 '-0.1' 时,我得到错误:

'value entered is not valid'

当我给出值 '-0.10' 时,该值被认为是有效的。

如何使 '-0.1' 成为有效值。 我尝试添加 contraints-places:2 以使输入的值转换为小数点后两位数,但这没有任何区别。 '0.1' 被自动格式化 '[=18=].10' 并被接受为有效输入。

<input type="text" id="amountTextBox" data-field="amount" maxlength="10" 
       required="required" data-dojo-type="dijit/form/CurrencyTextBox"
       value="0" data-dojo-props="constraints:{min:-9999999.99,max:9999999.99,places:2}, 
       currency:'USD', trim: true, intermediateChanges: true" />

我认为这是由于 Dojo 版本问题

请将您的项目设置为较新的版本,它应该可以工作

看到这个工作 Fiddle whcich 使用 dojo 1.12

另请参阅工作片段:

require(["dijit/form/CurrencyTextBox", "dijit/form/Button", "dojo/on",
  "dojo/domReady!"
], function(CurrencyTextBox, Button, On) {
  var fp = new CurrencyTextBox({
    currency: 'USD',

    value: -0.1,
    constraints: {
      places: 2
    }
  }, 'currency');

  var btn = new Button({}, "btn");


  console.log(fp);
  fp.startup();

  On(btn, "click", function(e) {
    console.log(fp.get("value"))
    alert(fp.get("value"));
  });
});
<link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/dojo/1.12.1/dijit/themes/claro/claro.css" />



<script src="//ajax.googleapis.com/ajax/libs/dojo/1.12.1/dojo/dojo.js"></script>

<div id='currency'></div>
<br /><br />
<body class="claro">
  <div id='btn'>
    Alert value
  </div>
</body>