1

我正在使用扩展页面对话框验证我的表单。当用户需要更正输入时,我会弹出带有错误消息的对话框。

该对话框有一个确定按钮,用于关闭对话框并将焦点设置到需要更正的字段。

 var ef = dojo.byId(errorField);
 ef.focus();

这很好用,除了......

我有一组按钮和一堆浮动到表单顶部的其他组件。

它们位于具有以下 CSS 的面板内。

 .PNCToolBar2 {
position:fixed;
top:68px;
left:0px;
width:100%;
height:40px;
color:#fff;
background-color:#F2F2F2;
padding-top:6.0px;
padding-left:15.0px
 }

发生的情况是,如果失败的字段在“按钮栏”下向上滚动,则浏览器会滚动一点以尝试使按钮成为焦点,但还不够。根据用户在表单上滚动浏览器的方式,所有或部分错误字段可能仍被按钮栏隐藏。

有没有办法先知道该字段是否位于栏下方的浏览器窗口顶部,然后如果要使该字段出现,请稍微滑动一下?如果有怎么办?

4

2 回答 2

4

尝试:

dojo.window.scrollIntoView(ef);

如果由 ef 表示的 DOM 节点当前不在屏幕上,Dojo 将滚动到刚好足够的位置。

有关此方法的更多信息

于 2012-11-07T12:44:27.003 回答
0

使用 javascript,您可以使用 scrollTo() 方法 http://www.w3schools.com/jsref/met_win_scrollto.asp

于 2012-11-07T06:22:50.523 回答