Когда проверка завершается неудачно внизу, почему браузер отображается вверху страницы?
Я только что реализовал RequiredFieldValidatior с ValidationSummary, установив ValidationGroup.
Работает нормально, когда нажимаю соответствующую кнопку!
Но область просмотра изменяется и смещается вверху страницы, и мой результат проверки, а кнопка и т. Д. Остаются в самом низу страницы, что нехорошо.
Есть ли способ предотвратить это и позволить браузеру по-прежнему делать покупки в той же области после нажатия кнопки?
Дополнительное примечание: проверка не проходит на стороне клиента; так что никакого постбека не происходит. По сути, проверка не проходит, и область просмотра скользит вверху страницы.
3 ответа
В вашем RequiredFieldValidator
есть возможность SetFocusOnError
который затем переместит курсор к типу Textbox/input.
Затем в объявлении вашей страницы в верхней части страницы добавьте MaintainScrollPositionOnPostback="true"
<%@ Page MaintainScrollPositionOnPostback="true" %>
Вы можете добиться этого, добавив следующую директиву вверху вашей страницы:
<%@ Page MaintainScrollPositionOnPostback="true" %>
Я делал это раньше, чтобы установить фокус на элементе fist, который не проверялся при вызове валидации вручную:
//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;
}
}
}