2011-11-02 60 views
1

我剛剛通過設置ValidationGroup實現了帶有ValidationSummary的RequiredFieldValidatior。當底部驗證失敗時,爲什麼瀏覽器顯示在頁面的頂部?

它工作正常,當我點擊相關的按鈕!

但是,視口在頁面頂部發生變化和變化,我的有效日期結果和按鈕等停留在頁面的最底部,這並不好。

有沒有辦法來防止這種情況,並讓瀏覽器仍然在按鈕點擊後shopwing相同的區域?

附加說明:驗證在客戶端失敗;所以不會發生回傳。基本上,驗證失敗,並且視口在頁面頂部滑動。

+0

所以這是一個代碼特定的問題,而不是一般的行爲,對吧? – pencilCake

+0

@pencilcake您的驗證摘要或頁面頂部的必填字段? – Suhas

回答

2

在你的RequiredFieldValidator有一個選項,以SetFocusOnError然後將光標移動到文本框/輸入類型。

然後在頁面的頂部您的頁聲明,添加在MaintainScrollPositionOnPostback="true"

<%@ Page MaintainScrollPositionOnPostback="true" %>

+0

就是這樣!謝謝蒂姆! – pencilCake

2

您可以通過添加下面的指令到你的頁面的頂部實現這一點:

<%@ Page MaintainScrollPositionOnPostback="true" %> 
+0

我相信這是在後衛回來之後要做的事情。想象一下,我仍然在客戶端,驗證在客戶端失敗。 (我把那個屬性設置爲true,但我認爲它不會影響我的情況) – pencilCake

+0

啊,我明白你的意思是關於客戶端驗證。將這與@Tim B James的建議結合起來,它應該工作? – Widor

0

我這樣做之前,將焦點設置手動調用驗證時未通過驗證的拳頭元素:

//has to be called after Page_ClientValidate() 
function ValidatorFocus() 
{ 
    var i; 
    for (i = 0; i < Page_Validators.length; i++) 
    { 
     if (!Page_Validators[i].isvalid) 
     { 
      document.getElementById(Page_Validators[i].controltovalidate).focus(); 
      break; 
     } 
    } 
} 
相關問題