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!

Odpowiedzi:


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

    alert('the action is: ' + $form.attr('action'));
});

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


11

Czyste i proste:

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

      alert(this.action);
});

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.