Ich benutze jquery ui dialog , und einer der Buttons verursacht einen Ajax-Aufruf, der ein paar braucht Sekunden, also möchte ich die Schaltfläche deaktivieren, nachdem ich darauf geklickt habe, bis der Ajax-Aufruf zurückkehrt (dann werde ich es aktivieren).
Beim googlen sehe ich ein paar andere, die diese Frage stellen, aber die Antworten scheinen sehr veraltet und hacky (basierend auf sehr alten Versionen von jquery ui). Ich hatte also gehofft, dass es jetzt einen eleganteren Weg gibt, dies zu tun.
Wie kann ich eine Schaltfläche in einem jquery ui-Dialog programmatisch deaktivieren oder aktivieren?
Ich denke, das ist, was Sie suchen:
ajax()
-Aufruf abgeschlossen ist ::
%Vor%Verwenden Sie dies:
%Vor%Demo anzeigen: Ссылка
in diesem die Taste programmatisch nach 3 Sekunden deaktiviert.
Sie sollten in der Lage sein, die Schaltfläche vom Ereignisargument auf die Rückruffunktion der Schaltfläche zu setzen und sie zu deaktivieren. Anschließend speichern Sie die Schaltfläche in einer Variablen und aktivieren sie erneut im Callback zur Ajax-Anfrage.
Zum Beispiel mit HTML:
%Vor%Sie können Folgendes tun:
%Vor%Die angeklickte Schaltfläche ist deaktiviert, während die Ajax-Anfrage ausgeführt wird, und wird wieder aktiviert, wenn sie beantwortet wird (Sie sollten wirklich eine Fehlerbehandlungsroutine sowie eine Kopie hinzufügen). Ich habe den Zähler hinzugefügt, um es zu illustrieren - Klicken, während die Schaltfläche deaktiviert ist, tut nichts.
Sehen Sie, wie es in dieser Geige funktioniert
Sie können die Schaltfläche, die Sie ändern möchten, so finden:
%Vor%Tags und Links asp.net-mvc javascript jquery asp.net-mvc-4 jquery-ui-dialog