保存一个相当长的页面后,如果视图模型有验证错误,我希望焦点返回到页面顶部。但它不会。
验证摘要位于视图的顶部:
<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标记中来实现它。
无论如何,我在这一点上相当难倒,已经沉没了太多时间来尝试这个......而且......任何帮助/虽然都是天赐之物。
答案 0 :(得分:0)
首先你需要将页面的焦点设置为实际的身体,而不是DIV。其次,您可以使用javascript代码导航回到顶部。
((IJavaScriptExecutor)webapplication).ExecuteScript("window.scrollTo(0, document.body.scrollHeight 0)");
如果你想了解更多的信息和细节,我已经在这里发布了一个类似但更详细的答案,虽然它是针对c#的,你需要编辑的唯一一段代码是你为身体编写SetFocus的方式。页面:
希望这对你有用。抱歉,我很久以前没有意识到这篇文章。