1

保存相当长的页面后,如果视图模型有验证错误,我希望焦点返回页面顶部。但事实并非如此。

验证摘要位于视图顶部:

<div class="error" id="validationSummary">
    <div class="row">
        <div class="span6" id="bookmarker"> 
            @Html.ValidationSummary(False)
        </div>
    </div>
</div>

保存函数是通过 AJAX 调用的,然后在 AJAX 函数之后我尝试了许多滚动技术:

 - $("#header").focus();
 - $("#validationSummary").focus();
 - $("body,html,document").scrollTop($("#validationSummary").offset().top);

...ETC

我在很多页面上都有这个问题,但在一些页面上,我通过将验证摘要嵌套在更多 DIV 标记中来使其工作。

无论如何,我在这一点上相当难过,已经花费了太多时间来尝试这个和那个......任何帮助/尽管都是天赐之物。

4

1 回答 1

0

首先,您需要将页面的焦点设置为实际正文而不是 DIV。其次,您可以使用一段 javascript 代码导航回顶部。

((IJavaScriptExecutor)webapplication).ExecuteScript("window.scrollTo(0, document.body.scrollHeight 0)");

如果您想要更多信息和详细信息,我已经在这里发布了类似但更详细的答案,尽管它是针对 c# 的,但您需要编辑的唯一一段代码是您为页面正文编写 SetFocus 的方式:

使用按钮 c# 滚动到 Adob​​e Reader

希望这对你有用。抱歉,我没有意识到这篇文章是很久以前的了。

于 2014-09-19T08:26:06.803 回答