【发布时间】: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)
【问题讨论】: