1

xforms ベースのフォームに次のコードがあります。

<!--<xforms:action ev:event="xforms-select" target="retrievalControl-control">-->
    <xforms:action ev:event="xforms-ready" target="fr-form-model">
<xforms:send submission="loadConfiguration"/>
    </xforms:action>

上記のコメント行のコメントを外す (そして xforms-ready を含む行をコメント アウトする) と、期待どおりの結果が得られます (つまり、対象のコントロールを選択すると送信が呼び出されます)。ただし、上記のコードをそのままにしておくと、記載されているモデルに対して xforms-ready イベントが発生したことをログで確認できますが、この送信は呼び出されません。送信は実際には正しい場所で定義されています (つまり、参照されているモデルであり、実際には、私の xforms ベースのフォームで定義されている唯一のモデルです)。

このモデルの xforms-ready で送信が呼び出されない理由は何でしょうか?

4

2 に答える 2

1

イベントがモデルにディスパッチされるため、次のxforms-readyいずれかを実行できます。

  • あなた自身の答えで述べたように、モデル内にイベントハンドラーを配置します。
  • 他の場所に配置しますがev:observer="fr-form-model"、モデルの ID が であると仮定して、属性を追加しますfr-form-modelev:observer(およびev:target属性に関する詳細情報も参照できます。)
于 2010-12-29T18:45:36.033 に答える
0

上記のコード スニペットを他の場所ではなく、モデル自体に移動することでこれを解決しました (以前は xhtml 本体にあり、モデルは xhtml ヘッドにありました)。以下は、モデル自体に配置された場合にも機能します。

<xforms:action ev:event="xforms-ready">
    <xforms:send submission="loadConfiguration"/>
</xforms:action>

<xforms:send ev:event="xforms-ready" submission="loadConfiguration" />
于 2010-12-29T11:38:39.990 に答える