У меня есть кнопка отправки с использованием Microsoft ConfirmButton , чтобы задать вопрос «Вы уверены?». Однако он запускается независимо от того, проходит ли страница проверку на стороне клиента.
<asp:TextBox ID="TextBox1" runat="server" /> <asp:RequiredFieldValidator ID="RequiredFieldValidatorTextBox1" runat="server" ControlToValidate="TextBox1" ErrorMessage="First name is required" Display="Dynamic" /> ... <asp:Button ID="Button1" runat="server" Text="Submit" CausesValidation="True" /> <ajaxToolkit:ConfirmButtonExtender ID="ConfirmButtonExtenderButton1" runat="server" TargetControlID="Button1" ConfirmText="Are you sure?" /> ... <asp:ValidationSummary id="ValidationSummary1" runat="server" ShowMessageBox="True" />
Таким образом, если пользователь оставляет обязательное поле пустым и нажимает кнопку «Отправить». Она увидит два окна сообщения:
Один для проверки ...
ValidationSummary ShowMessageBox http://img120.imageshack.us/img120/8305/validationzn6.gif
Тогда один для подтверждения ...
ConfirmButtonExtender http://img228.imageshack.us/img228/678/confirmationam3.gif
(Примечание: OK и Отмена оба просто отменить.)
Не имеет смысла показывать подтверждение, если проверка не удалась. Это должен быть один или другой. Как я могу это сделать?
Обновление:
Если я пытаюсь использовать ConfirmOnFormSubmit, я получаю это предупреждение:
Проверка (ASP.Net): атрибут 'ConfirmOnFormSubmit' не является действительным атрибут элемента 'ConfirmButtonExtender'.
Проверка (ASP.Net): атрибут ConfirmOnFormSubmit не является допустимым атрибутом элемента ConfirmButtonExtender. http://img382.imageshack.us/img382/1391/confirmonformsubmitow3.gif
Убедитесь, что для ConfirmOnFormSubmit установлено значение TRUE в ConfirmButtonExtender.
С примера сайта :
ConfirmOnFormSubmit - True, если диалог подтверждения должен подождать до того, как форма отправится на отображение. Это полезно, когда используются валидаторы ASP.NET, и подтверждение должно отображаться только после прохождения всех валидаторов.
РЕДАКТИРОВАТЬ: Согласно этому сайту это действительно. Попробуйте обновить до последней версии и / или проигнорируйте intellisense и просто посмотрите, что произойдет, когда вы опубликуете его.