验证后问题设置焦点到验证控制

时间:2009-10-28 04:34:08

标签: asp.net javascript validation

我有一个validationsummary控件,显示一些验证所需控件的摘要,所有这些控件都属于验证组。

我的提交按钮也具有相同的验证组,因此它会在点击它时验证所有内容。

我遇到的问题是在单击提交按钮后验证发生后将焦点设置为validationsummary控件。 重点放在我的网络表单的顶部。

我需要把重点放在验证控件上。 我如何实现这一目标?

仅供参考:SetFocusOnError =“true”不起作用。

感谢阅读。

4 个答案:

答案 0 :(得分:2)

试试这个http://forums.asp.net/t/967952.aspx。 我还没有验证。但最后的回复说它正在发挥作用。

此外,您可以尝试MaintainScrollPositionOnPostback="true",以便至少重点与发布之前的重点相同。

答案 1 :(得分:1)

<强>标记:

<asp:Button ID="Button1" runat="server" CausesValidation="false" 
  Text="Button" OnClientClick="SummaryFocus();" />

<强>脚本:

function SummaryFocus() {
    Page_ClientValidate();
    var i;
    for (i = 0; i < Page_ValidationSummaries.length; i++) 
    {
        if (!Page_ValidationSummaries[i].isvalid) 
        {                
            window.scrollTo(0, document.getElementById(Page_ValidationSummaries[i].id).offsetTop);
            break;
        }
    }
}

答案 2 :(得分:0)

你做不到。如果您实际查看浏览器中的验证摘要标记,则只是每个验证程序在其验证组中已关闭的错误消息。你不能把注意力放在它上面。

答案 3 :(得分:0)

此Connect问题报告中添加了一些提示:https://connect.microsoft.com/VisualStudio/feedback/details/342104/maintainscrollpositiononpostback-and-validationsummary(对不起剪切和粘贴URI,由于某些原因我无法正确添加链接)。

这都是一个黑客,但它可以帮助你。