我剛剛通過設置ValidationGroup實現了帶有ValidationSummary的RequiredFieldValidatior。當底部驗證失敗時,爲什麼瀏覽器顯示在頁面的頂部?
它工作正常,當我點擊相關的按鈕!
但是,視口在頁面頂部發生變化和變化,我的有效日期結果和按鈕等停留在頁面的最底部,這並不好。
有沒有辦法來防止這種情況,並讓瀏覽器仍然在按鈕點擊後shopwing相同的區域?
附加說明:驗證在客戶端失敗;所以不會發生回傳。基本上,驗證失敗,並且視口在頁面頂部滑動。
我剛剛通過設置ValidationGroup實現了帶有ValidationSummary的RequiredFieldValidatior。當底部驗證失敗時,爲什麼瀏覽器顯示在頁面的頂部?
它工作正常,當我點擊相關的按鈕!
但是,視口在頁面頂部發生變化和變化,我的有效日期結果和按鈕等停留在頁面的最底部,這並不好。
有沒有辦法來防止這種情況,並讓瀏覽器仍然在按鈕點擊後shopwing相同的區域?
附加說明:驗證在客戶端失敗;所以不會發生回傳。基本上,驗證失敗,並且視口在頁面頂部滑動。
在你的RequiredFieldValidator
有一個選項,以SetFocusOnError
然後將光標移動到文本框/輸入類型。
然後在頁面的頂部您的頁聲明,添加在MaintainScrollPositionOnPostback="true"
<%@ Page MaintainScrollPositionOnPostback="true" %>
就是這樣!謝謝蒂姆! – pencilCake
您可以通過添加下面的指令到你的頁面的頂部實現這一點:
<%@ Page MaintainScrollPositionOnPostback="true" %>
我相信這是在後衛回來之後要做的事情。想象一下,我仍然在客戶端,驗證在客戶端失敗。 (我把那個屬性設置爲true,但我認爲它不會影響我的情況) – pencilCake
啊,我明白你的意思是關於客戶端驗證。將這與@Tim B James的建議結合起來,它應該工作? – Widor
我這樣做之前,將焦點設置手動調用驗證時未通過驗證的拳頭元素:
//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;
}
}
}
所以這是一個代碼特定的問題,而不是一般的行爲,對吧? – pencilCake
@pencilcake您的驗證摘要或頁面頂部的必填字段? – Suhas