无法以编程方式(jQuery / javascript)滚动页面到顶部

时间:2013-10-15 13:54:14

标签: validation scroll summary

保存一个相当长的页面后,如果视图模型有验证错误,我希望焦点返回到页面顶部。但它不会。

验证摘要位于视图的顶部:

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

通过AJAX调用save函数,然后在AJAX函数之后我尝试了很多滚动技术:

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

...等

我在很多页面上都有这个问题,但有些网页上我已经通过将验证摘要嵌套在更多DIV标记中来实现它。

无论如何,我在这一点上相当难倒,已经沉没了太多时间来尝试这个......而且......任何帮助/虽然都是天赐之物。

1 个答案:

答案 0 :(得分:0)

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

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

如果你想了解更多的信息和细节,我已经在这里发布了一个类似但更详细的答案,虽然它是针对c#的,你需要编辑的唯一一段代码是你为身体编写SetFocus的方式。页面:

Scroll into a Adobe Reader using buttons c#

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