- From: Alexander Anokhin <ava@vaz.ru>
- Date: Fri, 01 Apr 2005 11:23:32 +0500
- To: Mark Birbeck <mark.birbeck@x-port.net>
- CC: www-forms@w3.org
Mark Birbeck:
> Alexander,
>
> The only way you can do this *today* is with a little bit of script (see
> below).
>
> For the future, some work has been done in XML Events 2 to provide
> conditional event handlers, which would do pretty much what you want...
If someone interested in, the way i choose to realize such thing (thanx
to Giovanni Motta for idea)
I've made an additional instance wich is contains one copy of
"count_result" for every condition, like this:
<xforms:instance id="choose">
<data xmlns="">
<eq0>84</eq0>
<eq1>84</eq1>
<gt1>84</gt1>
</data>
</xforms:instance>
...add binds and event handlers:
<xforms:bind id="eq0_bind" nodeset="instance('choose')/eq0"
constraint="not(. = '0') or . = ''"/>
<xforms:bind id="eq1_bind" nodeset="instance('choose')/eq1"
constraint="not(. = '1') or . = ''"/>
<xforms:bind id="gt1_bind" nodeset="instance('choose')/gt1"
constraint="not(. > '1') or . = ''"/>
<xforms:action ev:event="eq0_event">
<xforms:message level="modal">eq0</xforms:message>
</xforms:action>
<xforms:action ev:event="eq1_event">
<xforms:message level="modal">eq1</xforms:message>
</xforms:action>
<xforms:action ev:event="changed3">
<xforms:message level="modal">gt1</xforms:message>
</xforms:action>
Finally the hidden controls for dispatch "xforms-invalid" event:
<xforms:input bind="eq0_bind" style="display:none;">
<xforms:dispatch ev:event="xforms-invalid" name="eq0_event"
target="mymodel"/>
</xforms:input>
<xforms:input bind="eq1_bind" style="display:none;">
<xforms:dispatch ev:event="xforms-invalid" name="eq1_event"
target="mymodel"/>
</xforms:input>
<xforms:input bind="gt1_bind" style="display:none;">
<xforms:dispatch ev:event="xforms-invalid" name="gt1_event"
target="mymodel"/>
</xforms:input>
surely works on FormsPlayer 1.3.
--
Alexander Anokhin
AVTOVAZ JSC
email: ava@vaz.ru
icq: 123275798
Received on Friday, 1 April 2005 06:24:50 UTC