0

私が抱えている問題は次のとおりです。正規表現に対してフィールドを検証するデータルールがあります。サーバー側とクライアント側の両方のバージョンのデータ ルールを提供し、それらを適切なデータセット イベントにバインドしました。

問題は、レコード作成フォームを含む画面をロードすると、ユーザーが値を入力する前にフィールドが無効としてマークされることです。これは、データセット フィールドが最初にテキスト編集ウィジェットにバインドされていることに関係していると思います。ユーザーが値を入力した後、または画面が送信されたときにのみ有効性をテストしたい。

画面が最初にロードされるときにデータ・ルールが実行されないようにするにはどうすればよいですか?

アップデート

これが私のデータルールの定義です:

<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>
4

1 に答える 1

0

私が使用しているようなフィールド変更イベントの場合、次のように、データセットがバインドされているフィールドを明示的に通過する必要があります。

<event name="onRowFieldChanged" field="{@field}" .../>
<event name="onCurrentRowFieldChanged" field="{@field}" .../>

私のデータルールは、バインドされたフィールドだけでなく、フィールド変更イベントで実行されている必要があると思います

于 2012-10-23T03:33:57.640 に答える