【问题标题】:Problem setting focus to validationsummary control after validation验证后将焦点设置为验证摘要控件的问题
【发布时间】:2009-10-28 04:34:07
【问题描述】:

我有一个 validationsummary 控件,它显示几个需要验证的控件的摘要,它们都属于一个验证组。

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

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

我需要将焦点放在验证摘要控件上。 我如何做到这一点?

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

感谢阅读。

【问题讨论】:

  • 制作一些示例页面并在当前页面中放置一些控件并检查是否有效?否则发布该示例页面代码。

标签: asp.net javascript validation


【解决方案1】:

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

另外,您可以尝试MaintainScrollPositionOnPostback="true",这样至少焦点与回发之前相同。

【讨论】:

  • 如果您的验证摘要位于提交按钮附近,这是一个很好的建议
【解决方案2】:

标记:

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

【讨论】:

  • 你有customvalidator做回发吗?
  • no.here is my asp.net code:
  • 我可以知道自定义验证器在这种情况下会有什么不同吗?
  • 一个完整的回发,如果不使用 Ajax,它会将您带到屏幕顶部。
  • 我用一些具有 display=none 的验证器测试了这段代码。它与屏幕顶部或底部的 ValidationSummary 配合使用。
【解决方案3】:

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

【讨论】:

    【解决方案4】:

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

    这有点小技巧,但它可以帮助你。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-12
      • 1970-01-01
      • 1970-01-01
      • 2013-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-27
      相关资源
      最近更新 更多