2011-08-16 14 views
7

Mam prosty formularz internetowy z polem tekstowym i RequiredFieldValidator podłączony do niego. Gdy zostanie wywołany błąd RequiredFieldValidator, użytkownik musi kliknąć dwa razy, aby opublikować formularz. Pierwsze kliknięcie usuwa błąd, drugie faktycznie wystrzeliwuje zdarzenie click button. Czy to oczekiwane zachowanie?RequiredFieldValidator wymaga dwukrotnego kliknięcia przez użytkownika

<asp:RequiredFieldValidator ID="reqFieldCloseComment" ControlToValidate="tbCloseComment" ValidationGroup="ChangeStatus" ErrorMessage="Please enter a reason" Display="Dynamic" runat="server"></asp:RequiredFieldValidator> 
      <asp:TextBox ID="tbCloseComment" runat="server" CausesValidation="true" TextMode="MultiLine" Height="107px" Width="400px"></asp:TextBox> 

     <asp:Button ID="btnCloseRequestFinal" Text="Finish" CssClass="CloseReqButton" runat="server" ValidationGroup="ChangeStatus" /> 

Próbowałem dodanie CausesValidation do pola tekstowego za sugestię znalezionych z wyszukiwarki Google i to nie pomaga.

EDYTOWANIE Wygląda na to, że nie zawsze musi to być podwójne kliknięcie, aby wystrzelić zdarzenie. Dopóki tekst zostanie wprowadzony do pola tekstowego, a następnie zostanie usunięty z pola tekstowego, komunikat o błędzie RequiredFieldValidator zniknie, a formularz wymaga tylko jednego kliknięcia.

+0

Jeśli naciśniesz klawisz Tab po wpisaniu tekstu w polu tekstowym, czy nadal musisz dwukrotnie kliknąć przycisk przesyłania? – patmortech

+0

@patmortech - Tak. Wygląda na to, że gdy fokus zostanie usunięty z pola tekstowego, błąd zniknie. Następnie przycisk wymaga tylko jednego kliknięcia. – zeroef

+0

Spójrz tutaj http://stackoverflow.com/questions/11121725/requiredfieldvalidator-have-to-click-twice/29495726#29495726 –

Odpowiedz

1

Dzieje się tak, ponieważ kod usuwający komunikat o błędzie jest wyświetlany, gdy pole tekstowe traci ostrość. Więc co się dzieje, jest:

  1. wprowadzić tekst w polu
  2. kliknięciu na przycisk, który powoduje zdarzenie onblur się dziać na polu tekstowym, wypalanie kod, aby ponownie sprawdzić wartość pola i usunięciu błędu wiadomość
  3. Teraz nie ma błędów w sprawdzaniu poprawności, więc kliknięcie przycisku ponownie przesyła formularz.

Kiedy najpierw naciśniesz klawisz tabulatora (lub w zasadzie zrobisz wszystko, co ma fokus poza polem tekstowym), uruchamia się ten skrypt onblur i usuwa błąd, aby po kliknięciu przycisku przesyłania był gotowy do uruchomienia .

5

miałem ten sam problem z CompareValidator i znaleźć problem odszedł kiedy zmieniłem właściwość Display z Dynamiczny do Static. Nadzieja, która pomaga

+2

To pomaga rozwiązać problem. Dzięki DevDave. –

Powiązane problemy