RE: switch and validation

Joern,

> the problem:
> 
> if i have a switch statement with several cases and each case 
> itself constituted a view/page for the user (meaning the 
> content of a case uses the whole viewport of the client) 
> there might occur a validation problem or more precisely a 
> problem with signaling validation errors through alerts.
> 
> e.g. the user fills out 'page 1' and moves on to another 
> case. Fills out other data which by some calculation or 
> action lead to validation failures on 'page 1'. - The user 
> won't receive any alert messages and will be left without a 
> clue what may have gone wrong.
> 
> Is there a solution which i oversee?

There is no general solution. The obvious one is to reposition all alerts,
but the probably wouldn't show when on controls that are in hidden cases.

But a technique we began to use recently is to use groups that are bound to
the node you are interested in, but place them in a completely different
part of the form:

  <xf:switch>
    <xf:case id="page1">
      <xf:input ref="age">
        ...
      </xf:input>
    </xf:case>
    <xf:case id="page2">
      <xf:group ref="age" class="error-message">
        Age has been entered wrongly. Click here to go edit it...
      </xf:group>
      .
      .
      .
    </xf:case>
  </xf:case>

All you need to do for this to work is use CSS to *hide* valid xf:groups
with a class of "error-message". The nice thing about this technique is that
the contents of the group can be anything, so you can put in other controls
that might help the user, or perhaps a trigger that toggles the sub-form in
question.

Another version of this technique is to group all of your error messages
into a scrollable footer so that they are always 'visible' wherever you are
in the form.

Regards,

Mark


Mark Birbeck
CEO
x-port.net Ltd.

e: Mark.Birbeck@x-port.net
t: +44 (0) 20 7689 9232
w: http://www.formsPlayer.com/
b: http://internet-apps.blogspot.com/

Download our XForms processor from
http://www.formsPlayer.com/

Received on Tuesday, 13 September 2005 16:34:01 UTC