Как получить значение по событию xxforms-value-change? - PullRequest
1 голос
/ 05 января 2012

Я хотел бы получить значение и имя элемента (или ID), когда значение изменилось в fr-form-instance?Я добавил следующее в "fr-form-modal":

<xforms:model id="fr-form-model">

                  ...
                  ...

    <xforms:action ev:event="xxforms-value-changed" ev:observer="fr-form-instance"> 
          <xxforms:variable name="changed-value" select="."/>//doesn't work
          //get name(or id) if possible
    </xforms:action>

                  ...
                  ...

</xforms:model>

Переменная $ change-value пустаЕсть ли способ сделать это?

Ответы [ 2 ]

5 голосов
/ 06 января 2012

Кажется, что событие xxforms-value-changed не предоставляет полезной информации о контексте события.Таким образом, в настоящее время это событие не позволяет вам извлечь элемент или атрибут, который изменился.Я совершил изменение для поддержки этого.

Тем временем вы могли бы вместо этого прослушивать xforms-value-changed события в пользовательском интерфейсе, например на внешнем <xforms:group>.Это будет работать для узлов, с которыми связаны элементы управления.

2 голосов
/ 16 января 2012

Как сказал Эбрухез, вы можете использовать <xforms:group> в теле и наблюдать за событиями. Ниже приведен пример работ.

    <xhtml:html>
    <xforms:model>
        ..
        ..
        ..

        <xforms:action ev:observer="all-fields"  ev:event="xforms-value-changed"> //you can list as many events as you wish to observe for the fields inside "all-fields" group.
            <xforms:message level="modal" value="event('xxforms:binding')" /> //This will show you the value which has got changed.
        </xforms:action>


    </xforms:model>

    <xhtml:body>
        <xforms:group id="all-fields">
            ...
            ...
            ...

        </xforms:group>
    </xhtml:body>
</xhtml:html>

Ссылка: http://wiki.orbeon.com/forms/doc/developer-guide/xforms-events

...