ページが読み込まれると、次の JS スクリプトを実行します。これを使用して、フォームが送信されたときに (しばらくお待ちください...) というポップアップを表示します。
jQuery(function(){
jQuery("form").submit(function(){jQuery('#wait-link').trigger('click');return true;});
});
これは、h:commandButton タグを使用すると正常に機能しますが、 h:commandLinkタグを使用すると、フォームが Java スクリプトによって (jar jsf-impl.jar 内のファイル jsf.js から) 送信されるため、機能しません。下
mojarra.jsfcljs = function jsfcljs(f, pvp, t) {
mojarra.apf(f, pvp);
var ft = f.target;
if (t) {
f.target = t;
}
f.submit();
f.target = ft;
mojarra.dpf(f);
};
この問題を解決するために、WEB-INF/resources/javax.faces/jsf.js の下にあるjsf.jsファイルをコピーし、 jQuery を使用してフォーム送信メソッドをトリガーするように変更しました。これはうまくいきますが:
1) JSF の新しいリリースでは変更される可能性があるため、 jsf.jsファイルに触れているという事実は好きではありません。
2) jsf.jsファイル内で jQuery を使用しているという事実が気に入らない。
この問題を解決するためのより良い解決策はありますか?