XForms/Simple Message
Motivation
editThis is a simple message in XForms. The user presses a button and they see an alert panel. This is an example of a modal message, which the user must respond to in order to continue using the form. We will cover two other types of message later.
Screen Image
editHere is a screen image with the ephemeral message showing:
Link to working XForms Application
editSample Program
edit<html
xmlns="http://www.w3.org/1999/xhtml"
xmlns:xf="http://www.w3.org/2002/xforms"
xmlns:ev="http://www.w3.org/2001/xml-events"
>
<head>
<title>XForms Message</title>
<xf:model id="myModel">
<xf:instance xmlns="">
<data>
<MyMessage xmlns="">This is a modeless message stored directly in the model.
Note you can drag me to the side and still proceed to the next task.</MyMessage>
<inp1/>
<inp2/>
</data>
</xf:instance>
</xf:model>
</head>
<body>
<p>Put your cursor in the first input. A message will appear for just a moment.</p>
<xf:input ref="inp1">
<xf:label>Ephemeral message: </xf:label>
<xf:message level="ephemeral" ev:event="DOMFocusIn">This is an ephemeral message.
Don't worry, I go away after a few seconds.</xf:message>
</xf:input>
<br/>
<p>Press enter in the input field to get a modeless message:</p>
<xf:input ref="inp2">
<xf:label>Modeless message input: </xf:label>
<xf:message level="modeless" model="myModel" ref="/data/MyMessage" ev:event="DOMActivate"/>
</xf:input>
<br/>
<p>A standard and intrusive modal message that must be dismissed:</p>
<xf:trigger>
<xf:label>Press for a modal message</xf:label>
<xf:message level="modal" ev:event="DOMActivate">This is a modal message.</xf:message>
</xf:trigger>
</body>
</html>
Discussion
editThe data for the first and last message come from the body of the document. The modeless message is taken directly from the body by using an XPath expression into the model.
Note that the first event happens when you start to enter data in an input field. This is the DOMFocusIn
event. The other two use the DOMActivate
event which happens when you enter a return on the second example and press the button on the last example.
--the above explanation does not appear to refer to the Simple Message example ! --EXAMPLE FIXED
Example not working in my environment. eXist, jetty, betterFORM, Firefox. Result is a betterFORM message: xforms-binding-exception: model 'myModel' not found XPath: /html[1]/body[1]/xf:input[2]/xf:message[1]
This above error was because the id of the element was not set. partly fixed now with <xf:model id="myModel">, but still not getting modeless message—FIXED