当验证在底部失败时,为什么浏览器显示在页面顶部?

时间:2011-11-02 12:53:55

标签: javascript asp.net validation validationsummary

我刚刚通过设置ValidationGroup在ValidationSummary中实现了一个RequiredFieldValidatior。

当我点击相关按钮时,它工作正常!

但是视口在页面顶部发生变化和移动,我的验证结果和按钮等停留在页面的最底部,这是不好的。

有没有办法防止这种情况,让按钮点击后浏览器仍然在同一区域购物?

附加说明:验证在客户端失败;所以没有回发。基本上,验证失败,视口在页面顶部滑动。

3 个答案:

答案 0 :(得分:2)

您可以通过在页面顶部添加以下指令来实现此目的:

<%@ Page MaintainScrollPositionOnPostback="true" %>

答案 1 :(得分:2)

RequiredFieldValidator中,SetFocusOnError有一个选项,然后将光标移动到文本框/输入类型。

然后在页面顶部的页面声明中,添加MaintainScrollPositionOnPostback="true"

<%@ Page MaintainScrollPositionOnPostback="true" %>

答案 2 :(得分: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;
        }
    }
}