Почему средство проверки требуемого поля не работает, если я нажимаю дважды?

#html #asp.net #validation

#HTML #asp.net #проверка

Вопрос:

У меня есть форма на странице aspx, которая запрашивает адрес электронной почты. Я хочу, чтобы адрес электронной почты был обязательным полем, поэтому я использую a RequiredFieldValidator , чтобы заставить пользователя ввести адрес электронной почты.

Средство проверки работает при первом нажатии, т.Е. Код, связанный с нажатием отправки, не будет выполнен, однако он отправит форму, если вы нажмете второй раз, даже если в поле электронной почты по-прежнему нет сообщения электронной почты.

Я использую это неправильно? Должен ли я просто использовать javascript вместо этого класса?

             <tr>
                <th class="style1"><strong>Email: </strong></th>
                <th class="style2"><asp:TextBox ID="email" runat="server" class="textboxes"/>
                    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
                    ControlToValidate="email"
                    ErrorMessage="Email is a required field."
                    ForeColor="Red"/>
                </th>
            </tr>
 

Комментарии:

1. Вероятно, вы используете UpdatePanel, и вы не обновляете скрипт снова.

Ответ №1:

В качестве наилучшей практики всегда используйте Page .Isvalid на стороне сервера для предотвращения подобных ошибок сценариев.

 if (Page.IsValid)
                {
                    //do stuffs
                }