由于干净的 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="{"fractional":"false"}" id="view:_id1:djCurrencyTextBox1" name="view:_id1:djCurrencyTextBox1">
""
"部分不应包含在约束中。
而在第二个示例中,没有这样的问题:
<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 版中