Xpages djCurrencyTextBox with fractional=false



由于干净的 8.5.3 Domino 存在空格为千位分隔符的本地化数字问题,我决定切换到 djCurrencyTextBox。但是由于不想显示分数部分,我也在为此苦苦挣扎。即使在 9.0.1 测试服务器上。

如果我使用以下方法创建简单的字段:

<xe:djCurrencyTextBox id="djCurrencyTextBox1" value="#{document1.currency}">
  <xe:this.constraints>
      <xe:djNumberConstraints fractional="false">
      </xe:djNumberConstraints>
  </xe:this.constraints>
</xe:djCurrencyTextBox>

它无法识别输入的任何数字。(即使我只输入 1,我也会收到值无效的消息)

当直接将其添加为 dojo 属性时,它按预期工作

<xe:djCurrencyTextBox id = "djCurrencyTextBox1"
         value ="#{document1.currency}" >
         <xe:this.dojoAttributes>
             <xp:dojoAttribute name ="data-dojo-props"
                     value ="constraints:{fractional:false}" >
            </xp:dojoAttribute>
         </xe:this.dojoAttributes>
</xe:djCurrencyTextBox >

任何想法会导致问题?

这是一个已知问题,在 9.0.1 中未修复

使用上面的第一个例子,无论你在分数约束上设置什么值(启用/禁用/自动/真/假),文本框只接受包含分数部分的值(例如 567.89),这对于禁用和错误值是不正确的。第二个示例按预期工作,分数设置为 true 或 false。

这是因为,查看页面源代码,第一个示例的 html 输出是:

<input dojoType="dijit.form.CurrencyTextBox" constraints="{&quot;fractional&quot;:&quot;false&quot;}" id="view:_id1:djCurrencyTextBox1" name="view:_id1:djCurrencyTextBox1">

"&quot;"部分不应包含在约束中。

而在第二个示例中,没有这样的问题:

<input dojoType="dijit.form.CurrencyTextBox" data-dojo-props="constraints:{fractional:false}" id="view:_id1:djCurrencyTextBox2" name="view:_id1:djCurrencyTextBox2">

由于此问题尚未在 9.0.1 中修复,您所能做的就是利用您暂时发布的解决方法。

更新:此问题的修复程序位于 OpenNTF 上的 v901 XPages 扩展库的第 9 版中

最新更新