首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >防止页面滚动到表单提交的顶部

防止页面滚动到表单提交的顶部
EN

Stack Overflow用户
提问于 2015-09-18 09:39:40
回答 1查看 1.5K关注 0票数 0

一旦从列表框中选出一项,我将提交一页如下:

代码语言:javascript
运行
复制
  onchange="submit()"

选择完成后,页面立即滚动到页面的顶部,其中包含依赖于所选内容的新信息。

在jsf中有什么方法可以避免滚动发生吗?

向爱德蒙问好

EN

回答 1

Stack Overflow用户

发布于 2015-09-18 09:57:45

这并不是JSF特有的。这是HTML特有的。当您让JSF在生成的HTML /select元素上生成一个onchange="submit()"属性时,基本上是指示HTML /select元素调用父HTML<form>元素的submit函数。这将触发一个完全同步的请求,这将导致整个页面重新加载。默认行为是显示页面的顶部,就像通过普通链接打开页面或执行刷新一样。

如果您想执行异步提交,只需添加一些ajax即可。JSF2.x通过<f:ajax>标记提供了内置的ajax支持。

所以,而不是

代码语言:javascript
运行
复制
<h:selectOneMenu ... onchange="submit()">
    ...
</h:selectOneMenu>

代码语言:javascript
运行
复制
<h:selectOneMenu ...>
    ...
    <f:ajax />
</h:selectOneMenu>

如果您打算在同一视图中的其他地方更新特定组件,请在render属性中指定其绝对或相对客户端ID。

代码语言:javascript
运行
复制
<h:selectOneMenu ...>
    ...
    <f:ajax render="results" />
</h:selectOneMenu>
<h:panelGroup id="results">
    ...
</h:panelGroup>

另请参阅:

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

https://stackoverflow.com/questions/32648792

复制
相关文章

相似问题

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