2010-10-13 9 views
6

Mam widok ASP.NET MVC z Beginform, który określa akcję i kontroler do trafienia przy wysyłaniu. Ale po przesłaniu chcę wywołać usługę za pomocą jQuery, aby uzyskać pewne dane, a następnie przesłać te dane za pomocą formularza.Praca w języku JavaScript przed przesłaniem formularza ASP.NET MVC

Obecnie mam przycisk przesyłania w formularzu, w którym zdarzenie onclick przycisku wywołuje metodę JavaScript. W zależności od wyniku otrzymuję metodę, którą chcę, aby formularz został przesłany do określonej akcji.

Teraz nie mogę tego uruchomić. Czy jest to właściwy sposób, czy raczej powinienem napisać post używając jQuery? Myślę, że byłoby miło użyć tego, co już określiłem jako działanie/kontroler w formularzu.

Odpowiedz

11

Myślę, że najlepiej jest użyć zdarzenia "wyślij" na formularzu, ponieważ użytkownicy mogą chcieć przesłać formularz, naciskając Enter w niektórych polach. Zgadnij, możliwa jest zmiana niektórych wartości wejściowych podczas tego wydarzenia,

jQuery('form#myform').submit(function(e){ 
    //.... 
    if (somevar == false) 
    { 
     // stop submitting form 
     e.preventDefault(); 
    } 
    else 
    { 
     jQuery('input#hiddeninput').val('somevalue'); 
    } 
}) 
+0

Świetna odpowiedź, ale nie dokładnie to, co chcę zrobić. Chcę uruchomić żądanie ajax dla niektórych danych i tylko na odpowiedź/przekierowanie formularza. Użycie powyższego przykładu spowoduje, że żądanie nie zostanie wypełnione przed przesłaniem formularza. –

0

myślę, że byłoby lepiej, aby wykonać zadanie zapytań zewnętrzną usługę internetową w akcji kontrolera. W ten sposób zawsze przesyłasz formularz do tego samego działania kontrolera, które będzie przesyłać zapytanie do usługi i na podstawie wyników wyświetli lub przekieruje do innej akcji.

Powiązane problemy