我遇到了RichFaces弹出式面板的问题。我需要在弹出窗口打开时立即关注弹出窗口中的第一个输入元素。然后,用户必须能够使用键盘遍历弹出窗口中的所有输入元素。目前我正在使用RichFaces 4.1.0。
通过不同的论坛后,我发现这是RichFaces 4.1.0中的一个错误,已在RichFaces 4.2.3版本中得到修复。 Jboss社区通过更改 popupPanel.js 文件的 processAllFocusElements 来解决此错误。
到目前为止,我无法迁移到RichFaces 4.2.3。那么如何覆盖默认行为呢? 函数 processAllFocusElements 以便它可以正常使用RichFaces 4.1.0本身吗?
感谢。
答案 0 :(得分:0)
一种可能性是修补RichFaces jar文件并将popupPanel.js替换为4.2.3中的文件。
可能更简单的方法:将4.2.3 popupPanel.js
文件(从中删除不需要的部分)放到项目文件夹中,并按照加载自定义javascripts的方式加载它(模板中的某处我猜使用h:outputScript
)。
基本上4.1.0 popupPanel.js
仍将执行,但4.2.3版本将执行并覆盖结果。
单个方法的简单覆盖可能如下所示:
jQuery.extend(RichFaces.ui.PopupPanel.prototype, {
processAllFocusElements: function(root, callback) {
....
}
}