530 Stimmen

Ein Formular mit jQuery abschicken

Ich möchte ein Formular mit jQuery übermitteln. Kann jemand den Code, eine Demo oder ein Beispiel Link zur Verfügung stellen?

10voto

Joel Peltonen Punkte 12210

Beachten Sie, dass es im Internet Explorer Probleme mit dynamisch erstellten Formularen gibt. Ein auf diese Weise erstelltes Formular lässt sich im IE (9) nicht absenden:

var form = $('<form method="post" action="/test/Delete/">' +
             '<input type="hidden" name="id" value="' + myid + '"></form>');
$(form).submit();

Damit es im IE funktioniert, erstellen Sie das Formularelement und fügen es vor dem Absenden wie folgt an:

var form = document.createElement("form");
$(form).attr("action", "/test/Delete")
       .attr("method", "post");
$(form).html('<input type="hidden" name="id" value="' + myid + '" />');
document.body.appendChild(form);
$(form).submit();
document.body.removeChild(form);

Das Erstellen des Formulars wie in Beispiel 1 und das anschließende Anhängen funktioniert nicht - im IE9 wird ein JScript-Fehler ausgelöst DOM Exception: HIERARCHY_REQUEST_ERR (3)

Props an Tommy W @ https://stackoverflow.com/a/6694054/694325

10voto

Richard Punkte 21148

Sie können auch das Jquery-Formular-Plugin für die Übermittlung per Ajax verwenden:

http://malsup.com/jquery/form/

8voto

GKumar00 Punkte 81
jQuery("a[id=atag]").click( function(){

    jQuery('#form-id').submit();      

            **OR**

    jQuery(this).parents("#form-id").submit();
});

8voto

muzzamo Punkte 1701

Die bisherigen Lösungen setzen voraus, dass Sie die ID des Formulars kennen.

Verwenden Sie diesen Code, um das Formular abzuschicken, ohne dass Sie die ID kennen müssen:

function handleForm(field) {
    $(field).closest("form").submit();
}

Wenn Sie zum Beispiel das Klick-Ereignis für eine Schaltfläche behandeln möchten, könnten Sie Folgendes verwenden

$("#buttonID").click(function() {
    handleForm(this);    
});

8voto

Tk421 Punkte 5716

Wenn sich die Schaltfläche zwischen den Formular-Tags befindet, bevorzuge ich diese Version:

$('.my-button').click(function (event) {
    var $target = $( event.target );
    $target.closest("form").submit();
});

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