[Asp.net] Was ist der beste Ansatz für die (clientseitige) Deaktivierung einer Submit-Schaltfläche?


Answers

Sie könnten so etwas tun:

$('form').submit(function() {
    $(this)
        .find(":submit,:image")             // get all the submit buttons
        .attr({ disabled : 'disabled' })    // disable them
        .end()                              // go back to this form
        .submit(function() {                // change the onsubmit to always reject.
            return false;
        })
    ;
});

Vorteile davon:

  • Es wird mit allen Formularen arbeiten, mit allen Methoden der Einreichung:
    • Klicken auf ein Sendeelement
    • Drücken Sie die Eingabetaste oder
    • Aufruf von form.submit() von einem anderen Code
  • Es werden alle Sendeelemente deaktiviert:
    • <input type="submit"/>
    • <button type="submit"></button>
    • <input type="image" />
  • Es ist wirklich kurz.
Question

Einzelheiten:

  • Nur deaktivieren, nachdem der Benutzer auf die Schaltfläche zum Senden geklickt hat, jedoch vor dem Zurückgeben auf den Server
  • ASP.NET-Webformulare (.NET 1.1)
  • Bevorzuge jQuery (falls überhaupt eine Bibliothek)
  • Muss aktiviert werden, wenn das Formular neu geladen wird (dh die Kreditkarte ist ausgefallen)

Das ist keine Notwendigkeit, dass ich das tue, aber wenn es einen einfachen Weg gibt, es zu tun, ohne zu viel ändern zu müssen, werde ich es tun. (dh wenn es keine einfache Lösung gibt, werde ich es wahrscheinlich nicht machen, also mach dir keine Sorgen, zu tief zu graben)




Es gibt drei Möglichkeiten, ein Formular einzureichen, das abgedeckt werden sollte. Benutze die Vorschläge von David McLaughlin und Jimmy. Einer wird das Formularelement für den Absenden-Button deaktivieren, während der andere das Absenden des einfachen HTML-Formulars deaktiviert.

Für das dritte wird Javascript nicht von einem form.submit () abschalten. Die OnSubmit="return false" -Methode gilt nur, wenn ein Benutzer auf die Schaltfläche OnSubmit="return false" klickt oder in einem Eingabeformularelement die Eingabetaste drückt. Client Side Scripting muss ebenfalls behandelt werden.




in JQuery:

$('#SubmitButtonID').click(function() { this.disabled = true; });