XForms/服务器端字段验证
外观
< XForms
<!-- store the outgoing data for the invalid e-mail check -->
<xf:instance id="email-out">
<data xmlns="">
<email></email>
</data>
</xf:instance>
<!-- place to store the results of an invalid e-mail check -->
<xf:instance id="email-check-results">
<data xmlns=""/>
</xf:instance>
提交元素将“字段更改”事件连接到服务器上的服务。
<xf:submission id="email-check" method="get" action="email-check.xq"
ref="instance('email-check')"
replace="instance" instance="email-check-results" />
<xf:input ref="email" >
<xf:label>Email: </xf:label>
<xf:hint>This field must contain a valid email format.</xf:hint>
<xf:action ev:event="xforms-value-changed">
<!-- copy from your "save-data" into the outgoing instance -->
<xf:setvalue ref="instance('email-out')/email" value="instance('save-data')/email"/>
<xf:send submission="email-check"/>
</xf:action>
</xf:input>
<xf:group ref="instance('email-check-results')/message[@class='error']">
<div class="field-warn"><xf:output value="instance('email-check-results')/message"/></div>
</xf:group>
If there are no errors just return <ok/>
If there are errors return
<message type="error">Invalid e-mail format</message>