jquery bekommt post action url

80

Ich versuche, in einer jquery-Funktion auf die Post-Target-Aktion zuzugreifen.

Beispiel:

<form action="/page/users" id="signup" method="post">

Ich möchte in diesem Fall auf den Teil "Aktion" zugreifen - "/ page / users".

$('#signup').live("submit", function(event) {
    // get this submitted action
}

Scheint, als würde mir etwas sehr Einfaches fehlen. Ich sehe den Wert im Dom, weiß aber nicht, wo er in jquery gespeichert ist.

Vielen Dank!

djburdick
quelle

Antworten:

125
$('#signup').on("submit", function(event) {
    $form = $(this); //wrap this in jQuery

    alert('the action is: ' + $form.attr('action'));
});
Amy B.
quelle
4
Ist die zweite Zeile nicht unnötig, könnte die dritte Zeile nicht wie eine Warnung sein ('die Aktion ist:' + $ (this) .attr ('Aktion'));
Mohd Abdul Mujib
1
True @ 9kSoft, aber wir haben die Idee :)
Kennyomar
12
Zu Ihrer Information: live()wurde in 1.7 veraltet und in 1.9 entfernt. Entwickler sollten jetzt on()stattdessen verwenden.
vegemite4me
Dies scheint nicht zu funktionieren, wenn ein Formular mehrere Senden-Schaltflächen mit unterschiedlichen Aktionen enthält.
Keoghpe
Entschuldigung, aber dies wird nicht funktionieren, wenn Sie das Formaktionsattribut w3schools.com/tags/att_button_formaction.asp
zdarsky.peter
15

Versuchen Sie dieses ocde ;;

var formAction = $("#signup").attr('action');
Vikram Biwal
quelle
11

Sauber und einfach:

$('#signup').submit(function(event) {

      alert(this.action);
});
Fereydoon Barikzehy
quelle
Verlassen Sie sich nicht auf dieses Attribut, da es möglicherweise die Liste der Unterknoten mit Namen zurückgibt action.
Han
Erstens befindet sich das actionAttribut nur in einem HTML- formTag. Zweitens sind verschachtelte forms keine bewährten Methoden oder eine gute Idee für eine saubere Optimierung Html DOM.
Fereydoon Barikzehy