【发布时间】:2011-11-25 22:59:53
【问题描述】:
当我的页面被加载时,我会执行以下 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。
有没有更好的解决方案来解决这个问题?
【问题讨论】:
标签: jsf-2 commandlink