Jsf 如何防止在update=@form上重新定位滚动条?

Jsf 如何防止在update=@form上重新定位滚动条?,jsf,primefaces,Jsf,Primefaces,我有一个长表单,客户端必须垂直滚动屏幕才能看到所有字段 但是,每次启动属性为update=@form的组件时,屏幕就会回到顶部位置 因此,问题是: 有一种方法可以在更新=@form之后将滚动条保持在相同的位置。 重要:滚动条仅在第一次更新=@form时返回顶部,之后,屏幕保持当前位置 我不确定这是一个bug还是我做错了什么导致了这种行为 是的,我真的需要更新整个表格 e、 g 我以前遇到过这个问题,我必须更新整个表单 据我所知,当我更新包含已按下按钮(如验证按钮)的表单时,浏览器不知何故会失

我有一个长表单,客户端必须垂直滚动屏幕才能看到所有字段

但是,每次启动属性为
update=@form
的组件时,屏幕就会回到顶部位置

因此,问题是:

  • 有一种方法可以在
    更新=@form
    之后将滚动条保持在相同的位置。
重要:滚动条仅在第一次
更新=@form
时返回顶部,之后,屏幕保持当前位置

我不确定这是一个bug还是我做错了什么导致了这种行为

是的,我真的需要更新整个表格

e、 g


我以前遇到过这个问题,我必须更新整个表单

据我所知,当我更新包含已按下按钮(如验证按钮)的表单时,浏览器不知何故会失去对该按钮的关注,而只是滚动回顶部

我想出了一个解决办法

<p:commandButton id="btnVerifyLogin" 
                 update="@(form :not(#formId\\:btnVerifyLogin))" 
                 value="Verify" 
                 actionListener="#{demandController.VerifyLogin()} />

这可能会有帮助……谢谢你,哈特姆!你的回答没有达到预期效果,但它让我找到了解决办法。我要做的是排除父文档的更新,这是“窃取”焦点。这个问题也帮助了我:也许我的测试页面层次结构完全不同。。这就是我的伎俩奏效的原因:)@Pellizon
<p:commandButton id="btnVerifyLogin" 
                 update="@(form :not(#formId\\:btnVerifyLogin))" 
                 value="Verify" 
                 actionListener="#{demandController.VerifyLogin()} />