Asp.net Обязательное поле Валидатор Проблема - PullRequest
2 голосов
/ 10 марта 2012

Я использую asp.net validations и jquery validation для проверки ввода пользователя. Я использую числа required field validators и custom validators в моей форме, я столкнулся со странной проблемой, когда поле с required validator пустоerror message отображается на validation summary.все в порядке. Когда то же поле остается пустым, и в других полях вводятся неправильные значения с custom validators, в validation summary отображается только error message из required field validator. Другие сообщения об ошибках просто не отображаются.Кто-нибудь может указать мне, где я иду не так.Спасибо

1 Ответ

2 голосов
/ 12 апреля 2012

Вот пример кода, который использует RequiredFieldValidator вместе с CustomValidator . Он проверяет оба поля, а также когда происходит сбой одного из них, и отображает сообщения об ошибках в ValidationSummary .

CustomValidator имеет функцию OnServerValidate в коде позади.

Разметка .aspx:

            <form id="form1" runat="server">
                <div>
                    <label>Name:</label>
                    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" EnableClientScript="false"
                    ControlToValidate="TextBox1" ErrorMessage="The 'Name' field cannot be empty!" Text="*" ForeColor="Red" 
                    Display="Dynamic"></asp:RequiredFieldValidator>

                    <br /><br />

                    <label>Number:</label>
                    <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
                    <asp:CustomValidator ID="CustomValidator1" runat="server" ValidateEmptyText="true"
                    ControlToValidate="TextBox2" ErrorMessage="The 'Number' field must be exactly 5 digits!" Text="*" ForeColor="Red" 
                    Display="Dynamic" onservervalidate="CustomValidator1_ServerValidate"></asp:CustomValidator>

                    <asp:ValidationSummary ID="ValidationSummary1" runat="server" HeaderText="Please check the following fields:" ForeColor="Red" DisplayMode="BulletList" />

                    <br />

                    <asp:Button ID="Button1" runat="server" Text="Submit" />
                </div>
            </form>

и функция проверки в файле .aspx.cs:

            protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
            {
                if (args.Value.Length < 5 || args.Value.Length > 5)
                {
                    args.IsValid = false;
                }
                else
                {
                    args.IsValid = true;
                }
            }

Чтобы можно было отображать оба сообщения об ошибках, а не только RequiredFieldValidator , его свойство 'EnableClientScript' должно иметь значение false.

Надеюсь, это поможет вам решить вашу проблему.

...