2

特別な問題があります。フォーム全体を送信せずに、クライアントの onchange イベントによってサーバーに値を送信する必要があります。それを行うための機能はありますか?

Javascript でコンポーネントを処理できます。

<h:inputText onchange= ...js... >

そして、ajax で値を送信できます。

<f:ajax execute="name"/>

まとめる方法は?


解決しましたが、別の質問があります。

イベントの Ajax 処理と JavaScript 処理のどちらが早く処理されますか?

4

2 に答える 2

6

簡単です。AJAX は、ページで発生する部分的な送信/更新用に設計されています。タグeventの属性を指定して、必要に応じてそのままにするだけです。部分的なフォームの送信に従って、タグの属性でサーバー上で更新されるコンポーネントの ID を指定します。ただし、 of のデフォルト値は正確(イベントを発生させるコンポーネント) であるため、完全に省略できます。そのようです:<f:ajax>changeexecuteexecute<f:ajax>@this

<h:inputText id="text" value="#{bean.text}">
    <f:ajax event="change"/>
</h:inputText>

このように、JavaScript 変更イベントが発生した後、Bean モデルは AJAX を介して舞台裏で更新されます。

どのイベントが最初に発生するかについては、サーバーへの AJAX リクエストの送信をトリガーするのは JavaScript イベントであることを理解する必要があるため、当然、後者が最初に発生します。また、属性を指定することで、AJAX レスポンスが正常にコミットされたときに JavaScript へのフックを取得するクライアント側のコールバックをアタッチできoneventます。

于 2013-07-23T09:58:31.520 に答える