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.