首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 ><f:ajax请求完成后如何设置UIComponent的焦点?

<f:ajax请求完成后如何设置UIComponent的焦点?
EN

Stack Overflow用户
提问于 2013-04-23 17:46:51
回答 1查看 2.1K关注 0票数 1

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

我有一个与.xhtml和'f:ajax‘相关的问题。

我通过bean变量设置了richfaces:collapsiblepanel ' expanded‘属性,这是默认的折叠属性,在模糊事件中,它会被展开。我想在f:ajax请求完成后设置一个UIComponent焦点。为此,我用javascript编写了一个函数,并在f:ajax的'onevent‘中调用它。

但是onevent函数在面板打开之前触发,我不能将焦点设置在可折叠面板中定义的UIComponent上。

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

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-23 18:28:43

您的js函数应该如下所示

代码语言:javascript
运行
复制
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的样子

代码语言:javascript
运行
复制
<f:ajax onevent="doTheFocus" />

如果您想在面板打开时调用焦点的js函数,可以尝试

代码语言:javascript
运行
复制
<rich:collapsiblePanel onswitch="doTheFocus"

或者(我不确定...)

代码语言:javascript
运行
复制
<rich:collapsiblePanel onswitch="doTheFocus()"

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16166142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档