Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当验证在底部失败时,为什么浏览器显示在页面顶部?_Javascript_Asp.net_Validation_Validationsummary - Fatal编程技术网

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

Javascript 当验证在底部失败时,为什么浏览器显示在页面顶部?,javascript,asp.net,validation,validationsummary,Javascript,Asp.net,Validation,Validationsummary,我刚刚通过设置ValidationGroup,用ValidationSummary实现了RequiredFieldValidatior 当我点击相关按钮时,它工作正常 但是,视口在页面顶部发生变化和移动,我的validaiton结果和按钮等停留在页面底部,这不好 有没有办法防止这种情况,让浏览器在点击按钮后仍然在同一区域购物 附加说明:客户端验证失败;因此,不会发生回发。基本上,验证失败,视口在页面顶部滑动。您可以通过在页面顶部添加以下指令来实现这一点: <%@ Page Maintain

我刚刚通过设置ValidationGroup,用ValidationSummary实现了RequiredFieldValidatior

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

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

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


附加说明:客户端验证失败;因此,不会发生回发。基本上,验证失败,视口在页面顶部滑动。

您可以通过在页面顶部添加以下指令来实现这一点:

<%@ Page MaintainScrollPositionOnPostback="true" %>

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

<%@ Page MaintainScrollPositionOnPostback="true" %>
在RequiredFieldValidator中,有一个设置FocusOneError的选项,该选项将光标移动到文本框/输入类型

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

在RequiredFieldValidator中,有一个设置FocusOneError的选项,该选项将光标移动到文本框/输入类型

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


我以前这样做是为了将焦点放在手动调用validation时未验证的First元素上:

//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;
        }
    }
}

我以前这样做是为了将焦点放在手动调用validation时未验证的First元素上:

//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是你的验证摘要还是页面顶部的必填字段?我相信这是在发帖后要做的事情。假设我仍然在客户端,而验证在客户端失败。我也将该属性设置为true,但我不认为它不会影响我的caseAh,我明白你关于客户端验证的意思。结合@Tim B James的建议,它应该会起作用吗?我相信这是在一篇文章回来后要做的事情。假设我仍然在客户端,而验证在客户端失败。我也将该属性设置为true,但我不认为它不会影响我的caseAh,我明白你关于客户端验证的意思。将此与@Tim B James建议结合起来,它会起作用吗?