Javascript/JQuery deaktiviert die Schaltfläche „Senden“ beim Klicken, um doppelte Übermittlungen zu verhindern

StackOverflow https://stackoverflow.com//questions/11705337

Frage

Ich habe also den Senden-Button, der so aussieht:

<a href="#" id="submitbutton" 
onClick="document.getElementById('UploaderSWF').submit();">
<img src="../images/user/create-product.png" border="0" /></a>

Wenn ich offensichtlich doppelt einreicht, klicken Sie offensichtlich doppelt und das Problem ist, dass ich die Informationen in der Datenbank speichere, damit ich dort über Dublicate -Informationen verfügte, und das möchte ich nicht.Dieser Uploader verwendet Flash und Javscript.

$.fn.agileUploaderSubmit = function() {
    if($.browser.msie && $.browser.version == '6.0') {
        window.document.agileUploaderSWF.submit();
    } else {
        document.getElementById('agileUploaderSWF').submit();
        return false;
    }
}

Danke Jungs.Ich schätze Ihre Hilfe.Das war wirklich etwas, das ich selbst nicht tun konnte, weil ich so ein bisschen Erfahrung mit JS habe und nicht wirklich weiß, wie man Dinge macht.DANKE.

War es hilfreich?

Lösung

Versuchen Sie es mit dem Schnappen:

generasacodicetagpre.

edit 1

oh, in Ihrem Fall ist es ein Link und kein Senden-Button ...

generasacodicetagpre.

edit 2

Um dies zu vereinfachen, versuchen Sie dies:

generasacodicetagpre.

Formularelemente verwenden, wie <input type="image" />, um ein Formular nicht einen normalen Link einzureichen.

Das funktioniert gut!

Schauen Sie sich einen Blick auf jquery.post () , um Ihr Formular einzureichen.

.

Viel Glück.

bearbeiten 3

Das funktioniert auch für mich gut:

generasacodicetagpre.

hoffentlich hilft das.

Andere Tipps

Fügen Sie Folgendes hinzu onclick:

onclick="document.getElementById('submitbutton').disabled = true;document.getElementById('UploaderSWF').submit();"

Allerdings müssen Sie sich auch auf der Serverseite um die Verhinderung doppelter Übermittlungen kümmern.

nach http://api.jquery.com/prop/ Sie können die deaktivierte Eigenschaft mithilfe der .prop () -Funktion, nicht mit den .aTR () und .removeattr () -Funktionen.

Um die Eigenschaft hinzuzufügen:

generasacodicetagpre.

Um die Eigenschaft zu entfernen:

generasacodicetagpre.

hoffe das wird dir helfen.

wie vorgeschlagen hier (mit Beispielen):

Wenn Sie sicherstellen möchten, dass das registrierte Ereignis nur einmal abgefeuert wird, sollten Sie JQuerys [ONE] verwenden [1]:

.one (Events [, Daten], Handler) Renditen: jquery

Beschreibung: Befestigen Sie einen Handler an ein Ereignis für die Elemente.Der Handler wird höchstens einmal pro Element pro Ereignistyp ausgeführt.

Dadurch werden alle Senden-Schaltflächen und Links mit der Klasse Senden oder das Attributdaten-Senden in einem Formular deaktiviert, falls man angeklickt wird:

generasacodicetagpre.

Dies gilt automatisch für jedes Formular übrigens.Wenn Sie nur ein bestimmtes wünschen, verwenden Sie die ID anstelle von Form.Sie wussten das höchstwunsch das wahrscheinlich schon.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top