我遇到的问题是:我有一个数据规则,它根据正则表达式验证字段。我提供了数据规则的服务器端和客户端版本,并将它们绑定到适当的数据集事件。
问题是,当我加载包含记录创建表单的屏幕时,在用户有机会输入值之前,该字段被标记为无效。我认为这与最初绑定到文本编辑小部件的数据集字段有关。我只希望在用户输入值或提交屏幕后测试有效性。
首次加载屏幕时,如何防止数据规则运行?
更新
这是我的数据规则定义:
<data-rule name="{@name}"
factory-class="com.aviarc.framework.datarule.xml.DefaultXMLDataRuleProviderFactoryImpl"
datarule-class="com.aviarc.framework.datarule.workflow.WorkflowDataRule">
<attributes>
<attribute name="field" mandatory="y" type="field"/>
<attribute name="valid-membership-number-regex" default="\d{8}[a-zA-Z\d]" mandatory="n" type="string">
Valid membership number regex:
- \d{8} : match 8 digits
- [a-zA-Z\d] : match any alphanumeric character
</attribute>
</attributes>
<event name="onRowFieldChanged" workflow="workflows/set-membership-number-valid"/>
<event name="onCurrentRowFieldChanged" client-action="actions/set-membership-number-valid"/>
</data-rule>