Skip to main content

  | मौसम…

411 समाचार
Public archive edition · Attributed source reporting with original dates · AI drafts are excluded

411 REFERENCE · Wikibooks

XForms/Validation with Bind

Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.

Motivation You want to validate a single field based on a rule and alert the user if they enter an invalid value. Method We will use an XForms bind expression: <xf:bind nodeset="PositiveDecimalAmount" type="xs:decimal" constraint=". > 0"/> This last line says that if the current element is greater than zero then the rule passes and the field is valid. Screen Image center|frame|Example of error on bind Sample Code <html xmlns="http://www.w3.org/1999/xhtml" xmlns:xf="http://www.w3.org/2002/xforms" xmlns:xs="http://www.w3.org/2001/XMLSchema" > <head> <title>Validation With Bind</title> <style type="text/css"> <![CDATA[ body { font-family: Helvetica, sans-serif; } ]]> </style> <xf:model> <xf:instance xmlns=""> <data> <PositiveDecimalAmount>1.0</PositiveDecimalAmount> <NegativeDecimalAmount>-1.0</NegativeDecimalAmount> </data> </xf:instance> <!-- note that the gt operator does not work and that the greater than character must be escaped. --> <xf:bind nodeset="PositiveDecimalAmount" type="xs:decimal" required="false()" constraint=". > 0"/> <!-- note that the lt operator does not work and that the less than character must be escaped. --> <xf:bind nodeset="NegativeDecimalAmount" type="xs:decimal" required="false()" constraint=". < 0"/> </xf:model> </head> <body> <h1>Validation With Bind</h1> <p>To pass this test the form must warn the user if they enter </p> <xf:input class="PositiveDecimalAmount" ref="PositiveDecimalAmount" incremental="true"> <xf:label>Positive Decimal Amount:</xf:label> <xf:alert>Amount must be a positive decimal number.</xf:alert> </xf:input> <br/> <xf:input class="NegativeDecimalAmount" ref="NegativeDecimalAmount" incremental="true"> <xf:label>Negative Decimal Amount:</xf:label> <xf:alert>Amount must be a negative decimal number.</xf:alert> </xf:input> <br/> </body> </html> Case Validation Load