7 Stimmen

RequiredFieldValidator verlangt, dass der Benutzer zweimal klickt

Ich habe ein einfaches Web-Formular mit einem Textfeld und ein RequiredFieldValidator verdrahtet, um es. Wenn der RequiredFieldValidator-Fehler ausgelöst wird, muss der Benutzer zweimal auf die Schaltfläche "Submit" klicken, um das Formular zu senden. Der erste Klick löscht den Fehler, der zweite löst tatsächlich das Schaltflächenklickereignis aus. Ist dieses Verhalten erwartet?

<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" />

Ich habe versucht, Folgendes hinzuzufügen CausesValidation in das Textfeld ein, wie es bei einer Google-Suche vorgeschlagen wurde, aber es hilft nicht.

EDIT Es scheint, dass es nicht immer ein Doppelklick sein muss, um das Ereignis auszulösen. Solange Text in das Textfeld eingegeben wird und dann der Fokus vom Textfeld weggenommen wird, verschwindet die RequiredFieldValidator-Fehlermeldung und das Formular erfordert nur einen einzigen Klick.

0 Stimmen

Wenn Sie nach der Eingabe des Textes in das Textfeld die Tabulatortaste drücken, müssen Sie dann trotzdem zweimal auf die Schaltfläche "Senden" klicken?

0 Stimmen

@patmortech - Jawohl. Es sieht so aus, dass der Fehler verschwindet, wenn der Fokus vom Textfeld weggenommen wird. Dann erfordert die Schaltfläche nur einen Klick.

0 Stimmen

6voto

DevDave Punkte 6491

Ich hatte das gleiche Problem mit einem CompareValidator und stellte fest, dass das Problem verschwand, als ich die Display Eigentum von Dynamisch à Statisch . Ich hoffe, das hilft

1voto

patmortech Punkte 10039

Dies geschieht, weil der Code, der die Fehlermeldung löscht, ausgeführt wird, wenn das Textfeld den Fokus verliert. Was also passiert, ist:

  1. Sie geben einen Text in das Feld ein
  2. Sie klicken auf die Schaltfläche, wodurch das Ereignis "onblur" für das Textfeld ausgelöst wird, wodurch der Code zur erneuten Überprüfung des Feldwerts ausgelöst und die Fehlermeldung entfernt wird
  3. Jetzt gibt es keine Fehler mehr bei der Validierung, und durch erneutes Klicken auf die Schaltfläche wird das Formular abgeschickt.

Wenn Sie zuerst die Tabulatortaste drücken (oder irgendetwas anderes tun, das den Fokus vom Textfeld nimmt), dann wird das onblur-Skript ausgeführt und löscht den Fehler, so dass es bereit ist, wenn Sie auf die Schaltfläche "Senden" klicken.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X