当我的页面被加载时,我执行以下 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.js文件这一事实,因为它可能会在 JSF 的较新版本中发生变化。
2) 我不喜欢在jsf.js文件中使用 jQuery 的事实。
有没有更好的解决方案来解决这个问题?