2013-10-15 88 views
1

保存一個相當長的頁面後,如果視圖模型有驗證錯誤我希望焦點返回頁面頂部,但它不。無法以編程方式(jQuery/javascript)滾動頁面頂部

驗證摘要是在視圖的頂部:

<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); 

...等

我在很多頁面上都有這個問題,但是在一些我通過將驗證摘要嵌套到更多DIV標籤中來獲得它的工作。

無論如何,我在這一點上相當難過,沉浸了太多的時間去嘗試這個和那個......任何幫助/雖然會是天賜之物。

回答

0

首先你需要設置頁面的焦點到實際的身體,而不是一個DIV。其次,您可以使用JavaScript代碼導航回頂部。

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

,如果你想了解更多信息和細節我已經發布了類似但更詳細的答案在這裏,但它是C#的代碼,你需要編輯的唯一的一塊是在你寫的SetFocus的方式在頁面的正文:

Scroll into a Adobe Reader using buttons c#

希望這是對你有用。對不起,我沒有意識到這篇文章是很久以前。