jquery uzyskuje adres URL akcji post

81

Próbuję uzyskać dostęp do akcji celu post w funkcji jQuery.

przykład:

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

W tym przypadku chciałbym uzyskać dostęp do części „akcja” - „/ page / users”.

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

Wygląda na to, że brakuje mi czegoś bardzo prostego. Widzę wartość w dom, ale nie wiem, gdzie jest przechowywana w jquery.

Dzięki!

djburdick
źródło

Odpowiedzi:

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

    alert('the action is: ' + $form.attr('action'));
});
Amy B.
źródło
4
czy druga linia nie jest niepotrzebna, czy trzecia linia nie mogła wyglądać jak alert ('akcja to:' + $ (this) .attr ('action'));
Mohd Abdul Mujib
1
Prawda @ 9kSoft, ale mamy pomysł :)
Kennyomar
12
FYI: live()został wycofany w wersji 1.7 i usunięty w wersji 1.9. Twórcy powinni teraz używać on()zamiast tego.
vegemite4me
Wydaje się, że to nie działa, gdy formularz ma wiele przycisków przesyłania z różnymi akcjami.
keoghpe
Przepraszamy, ale to nie zadziała, jeśli będziesz używać atrybutu formaction w3schools.com/tags/att_button_formaction.asp
zdarsky.peter
15

Spróbuj tego ocde ;;

var formAction = $("#signup").attr('action');
Vikram Biwal
źródło
11

Czyste i proste:

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

      alert(this.action);
});
Fereydoon Barikzehy
źródło
Nie polegaj na tym atrybucie, ponieważ może on zwrócić listę podwęzłów o nazwie action.
Han,
Po pierwsze, jedyne użycie actionatrybutu znajduje się wewnątrz formtagu HTML, po drugie, zagnieżdżone forms nie są najlepszą praktyką ani dobrym pomysłem, aby mieć czystą optymalizację Html DOM.
Fereydoon Barikzehy