【问题标题】:Strange behaviour with xxf:format attribute in my Xforms form (using Orbeon Form Runner)我的 Xforms 表单中 xxf:format 属性的奇怪行为(使用 Orbeon Form Runner)
【发布时间】:2014-09-10 16:09:49
【问题描述】:

我的表单中有一个数字输入字段。我只是用 xxf:format 添加一些格式:

<xf:input 
    id="input-control" 
    bind="input-bind" 
    class="question nombre" 
    xxf:format="if (. castable as xs:integer) 
                then replace(format-number(xs:integer(.),'###,###,###,###,###,###,###,###,###,##0'),',',' ')
                else ''">

这可能看起来有点疯狂,但它只是数字 123456 将显示为 123 456 的一种格式。这对我很有用,但对用户不适用...... 所以现在,我添加了一个脚本,以在输入集中时取消格式化(又名:编辑字段时返回 123456),使用简单的 js:

<xf:action ev:event="DOMFocusIn">
    <xxf:script>
    var input = this.getElementsByTagName('input')[0];
    var valeur = input.value.replace(' ','');
    input.value = valeur;
    </xxf:script>
</xf:action>

行为乍一看还不错,我的意思是,我输入了 123456,聚焦并得到 123 456(格式正常),聚焦并得到 123456(脚本行为正常)。但是,如果我不在现场进行任何更改并集中注意力,我就没有返回格式(仍然是 123456 而不是 123 456)。 我了解该格式仅在“需要”和“需要”在这里表示输入值更改时应用。但是,如果我强制执行 xforms-value-change 事件,我仍然没有恢复格式。

有人知道如何实现这一目标吗?

(有人明白什么吗?:-s)

【问题讨论】:

    标签: orbeon xforms


    【解决方案1】:

    这可能很难做到。我建议改用 fr:number 控件,它会为您完成所有这些工作。

    【讨论】:

    • 对。正如我们在这里所说的那样,“它可以播放” ;-) 我不知道我是怎么错过的,这是一个明显的解决方案......谢谢!
    猜你喜欢
    • 2019-02-11
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-10
    • 1970-01-01
    相关资源
    最近更新 更多