こんにちは、JSFの専門家です...
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui"
xmlns:o="http://omnifaces.org/ui">
<h:head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
</h:head>
<h:body>
<h:form>
<o:validateOneOrMore components="one two three" id="validate"/>
<p:message for="validate"/>
<p:inputText id="one" value="#{testBean.valueOne}">
<p:ajax event="change" process="@this" update="@form"/>
</p:inputText>
<p:inputText id="two" value="#{testBean.valueTwo}">
<p:ajax event="change" process="@this" update="two"/>
</p:inputText>
<p:inputText id="three" value="#{testBean.valueThree}">
<p:ajax event="change" process="@this" update="one two validate"/>
</p:inputText>
<p:commandButton process="@form"
update="@form"
value="Submit"
partialSubmit="true"
action="#{testBean.submit}"/>
</h:form>
</h:body>
</html>
少なくとも 1 つのフォームに入力する必要があり、すぐにエラーをリセットし、タブを使用できるシンプルなフォーム。
サンプルコードでわかるように、さまざまなことを試しました。
何が起こるのですか
- 送信を押します->エラーメッセージが表示されます:問題ありません
- フィールド 1 にエントリを入力し、tab: で終了します (すべてのフィールドがエラー状態ではなくなり、メッセージが表示されなくなります)。ただし、AJAX の更新が完了した後、フォーカスが失われます。ここで読んだように、JSFとブラウザの予想される動作はわかりましたが、どうすれば解決できますか?
- すべてのエントリを削除し、Enter キーを押します -> フィールド 3 に入力し、フィールドを離れます ... 何も変わりません ... メッセージも消えません。すべてのフィールドを更新したので、私もわかりません
そのようなフォームを持つための解決策はありますか...フォームの入力検証が行われるたびに(そのようなグローバルエラーを削除することを意味します)、タブキーを使用してすばやく使用できますか?
どうも。