ページの変更を処理するための確認を作成したいと考えています。たとえばgmail
、他の多くのWebサイトには、ページのフィールドを変更したり、ページを離れたり、フォーム入力をクリアしたりするときに、サイトが変更を保存するのに役立つ確認ダイアログを作成するシステムがあります忘れました。これが私の解決策ですが、もっと良い方法があるかどうか疑問に思っています。また、プロジェクトはJSFプロジェクトであり、primefaces 3.4
ソリューションを使用しています:
1.
グローバルjs変数を作成します
var isChanges = false;
- 変更メソッドのすべての入力フィールドにハンドラーを配置します。
< p:inputText value="#{someMB.someValue}" id="id" onkeydown="isChanges=true">< /p:inputText>
または
< p:selectOneMenu value="#{someMB.someValue}" id= "#{cc.attrs.id}" >
< p:ajax event="change" onsuccess="isChanges=true" />
< /p:selectOneMenu>
など....
ユーザーがページを離れたか、フォーム入力をクリアしたかを検出します。
< script language="JavaScript">
window.onbeforeunload = confirmExit;
function confirmExit()
{
if(isChanged && window.confirm("sometext")){
// Call servers save method
}
}
< /script>