Orbeon xforms使用相关属性检查有效输入

时间:2013-12-09 17:20:37

标签: orbeon xforms

并且有变化的反应

<xforms:bind nodeset="instance('request')/SOAP-ENV:Body/request">
    <xforms:bind nodeset="request">
    <xforms:bind nodeset="fromDate" type="xforms:date" id="bind_fromDate" />
    <xforms:bind nodeset="toDate" type="xforms:date" id="bind_toDate" />
    <xforms:bind nodeset="hoursperweek" type="xforms:int" id="bind_hoursperweek" />
</xforms:bind>

还有按钮变量

<xforms:instance id="buttons">
    <buttons>
        <submitbutton />
    </buttons>
</xforms:instance>

如果所有输入都已填满,我会显示按钮

<xforms:bind nodeset="instance('buttons')">
    <xforms:bind id="bind_savebutton" nodeset="submitbutton" relevant ="
        instance('request')/SOAP-ENV:Body/request/fromDate != '' and
        instance('request')/SOAP-ENV:Body/request/toDate != ''   and
        instance('request')/SOAP-ENV:Body/request/hoursperweek != '' " />

在身体标记

中有一个输入形式
<xforms:group ref="instance('request')">
    <xforms:input ref="fromDate" bind="bind_fromDate">
        <xforms:label>Start date</xforms:label>
    </xforms:input>
    <xforms:input ref="toDate" bind="bind_toDate">
        <xforms:label>End date</xforms:label>
    </xforms:input>
    <xforms:input ref="hoursperweek" bind="bind_hoursperweek">
        <xforms:label>Hrs.</xforms:label>
    </xforms:input>
    <xforms:trigger bind="bind_savebutton">
        <xforms:label>Save</xforms:label>
    </xforms:trigger>
</xforms:group>

但如果用相关表达式检查,如果日期是“WronDate”而不是“2013-12-14”? 如何看待hoursperweek是“非数字字符串”或“23.3”而不是正整数,例如“40”?并且可以检查开始日期是否早于结束日期?并且还在更改事件中绑定而不是“鼠标移出”事件?

谢谢

1 个答案:

答案 0 :(得分:1)

以下是relevant表达式的示例:

  • 有效日期:relevant="string() castable as xs:date"
  • 有效的十进制数:relevant="string() castable as xs:decimal"
  • 特定十进制数:relevant=". = 23.3"
  • 比较日期:relevant="$start-date le $end-date"(名为start-dateend-date的控件)