【问题标题】:ASP.NET:Required Field Validator not workingASP.NET:必填字段验证器不起作用
【发布时间】:2012-03-19 13:34:47
【问题描述】:

我有一个奇怪的问题,我不明白为什么会这样。

我制作了一个内容页面,以便用户可以向我的电子邮件发送消息,并制作了一些链接到某些验证器的 TextBox。

当我第一次制作页面时,我使用了 1 个正则表达式验证器,一切都像我计划的那样运行良好,但后来我决定删除正则表达式验证器,现在我遇到了必填字段验证器的问题。

当我按下提交页面时,就像页面上没有任何验证器一样回发。

我很确定我错过了一些东西(我在 asp.net 上很新) 这是标记:

<!-- Regular Expression Validtor for the Name Text Box 
<asp:RegularExpressionValidator ID="NameExpressionValidator1" runat="server" ControlToValidate="nameTextBox"
ValidationExpression="[אבגדהוזחטיכלמנסעפצקרשתץףןם\s\.]*" Display="Dynamic">  </asp:RegularExpressionValidator> -->

<!--The Name Text Box -->  
<asp:TextBox ID="nameTextBox" class="TextBoxes" runat="server" 
AutoPostBack="True"  ValidationGroup="g" ></asp:TextBox> <span class="infoText">:שם</span>

<!-- Required Field Validator for the Name Text Box -->
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server"  ControlToValidate="nameTextBox" 
Display="Dynamic" ValidationGroup="g"   ErrorMessage="please enter your name"></asp:RequiredFieldValidator>
<br />
<br />

<!-- Phone Text Box -->
<asp:TextBox ID="phoneTestBox" class="TextBoxes" runat="server" 
AutoPostBack="True" ValidationGroup="g"  ></asp:TextBox> <span class="infoText">:טלפון</span>

<!-- Requierd Field Validator Phone Text Box -->
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"  ControlToValidate="phoneTestBox" 
Display="Dynamic"  ValidationGroup="g" ErrorMessage="please enter your phone"></asp:RequiredFieldValidator>
<br />
<br />
<asp:TextBox ID="messagTextBox" runat="server"  class="TextBoxes" TextMode="MultiLine"
Text="asdasdadasdasdasd"></asp:TextBox> <span class="infoText">:הודעה</span> 

<asp:Button ID="button" runat="server" Text="send message"  ValidationGroup="g" />

【问题讨论】:

    标签: asp.net validation


    【解决方案1】:

    您不应使用HTML comments 来注释服务器端控件,而应使用&lt;%-- --%&gt;

    <%-- 
    <asp:RegularExpressionValidator ID="NameExpressionValidator1" runat="server" ControlToValidate="nameTextBox"
    ValidationExpression="[אבגדהוזחטיכלמנסעפצקרשתץףןם\s\.]*" Display="Dynamic">  </asp:RegularExpressionValidator>
    --%>  
    

    http://msdn.microsoft.com/en-us/library/4acf8afk.aspx

    【讨论】:

    • 解决了这个问题,我学到了一些新东西,谢谢 :) 不知道 asp.net 有不同的评论
    • 仅供参考,如果使用 Visual Studio,请使用键盘命令 (Ctrl-K, C) 进行注释,使用 (Ctrl-K, U) 取消注释。那应该选择合适的评论风格。
    【解决方案2】:

    AutoPostBack="True" 在文本框中有什么特殊用途吗?如果不是,那么只需从所有文本框中删除它,您还需要为验证器控件提供 ValidationGroup="g",无需在文本框控件中提供它。

    【讨论】:

    • 这两个建议在这种情况下都没有帮助,它们本身也不可取。 AutoPostBack 允许在用户离开文本框或按下 Enter 时立即进行回发。因此,如果需要,请使用它。 ValidationGroups 除了验证器之外的控件也可能有助于澄清关系(即使验证器稍后会被删除)。
    【解决方案3】:

    首先,确保验证摘要的验证组匹配? 如果正确,请尝试使用验证方法:

     protected void Page_Load(object sender, EventArgs e)
    {
        Validate();
    }
    

    【讨论】:

      猜你喜欢
      • 2013-04-18
      • 1970-01-01
      • 2011-05-03
      • 1970-01-01
      • 1970-01-01
      • 2011-11-24
      • 1970-01-01
      相关资源
      最近更新 更多