如何设置UIComponent的焦点

时间:2013-04-23 09:46:51

标签: jsf-2 richfaces

首先,非常感谢大家的持续支持。

我有一个问题是.xhtml和'f:ajax'。

我正在设置richfaces:collapsiblepanel'扩展'属性由bean变量默认折叠,在模糊事件中它被扩展。我希望在f:ajax请求完成后将焦点设置为UIComponent。为此,我在javascript中编写了一个函数,并在f:ajax的'onevent'中调用它。

但是在面板打开之前会触发一个函数,我无法将焦点设置在可折叠面板中定义的UIComponent上。

如何设置setFocus或如何在ajax请求完成后触发该函数?

提前致谢。

1 个答案:

答案 0 :(得分:3)

你的js函数应该是这样的

function doTheFocus(data) {
    if (data.status === 'success') {
        //here goes the js code that will set the focus
        //this code will be executed only when the ajax will be done
    }
}

以下是f:ajax的样子

<f:ajax onevent="doTheFocus" />

如果要在面板打开时调用焦点的js功能,可以尝试

<rich:collapsiblePanel onswitch="doTheFocus"

或(我不确定......)

<rich:collapsiblePanel onswitch="doTheFocus()"

如果您最终将使用onswitch,则可能需要在doTheFocus函数中添加一些逻辑来检查面板是否已展开...