2010-10-13 19 views
6

Ich habe eine ASP.NET MVC-Ansicht mit einer Beginform, die eine Aktion und Controller angibt, um auf Senden zu treffen. Aber beim Senden möchte ich einen Dienst aufrufen, der jQuery verwendet, um einige Daten zu erhalten, und diese Daten dann mit dem Formular übermitteln.JavaScript funktioniert vor dem Einreichen von ASP.NET MVC-Formular

Momentan habe ich einen Absenden-Button auf dem Formular, wo das onclick-Ereignis der Schaltfläche die JavaScript-Methode aufruft. Abhängig davon, welches Ergebnis ich von der Methode bekomme, möchte ich das Formular an die angegebene Aktion übergeben.

Jetzt kann ich das nicht zur Arbeit bringen. Ist es der richtige Weg dies zu tun oder sollte ich stattdessen einen Beitrag mit jQuery machen? Ich denke, es wäre schön, das zu verwenden, was ich bereits als Aktion/Controller im Formular angegeben habe.

Antwort

11

Ich denke, der beste Weg ist, Ereignis "Senden" auf Formular zu verwenden, da Benutzer Formular in einigen Feldern durch Drücken der EINGABETASTE senden möchten. Ratet mal, ist es möglich, einige Eingabewerte während dieses Ereignisses zu ändern,

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

große Antwort, aber nicht genau das, was ich tun möchte. Ich möchte eine Ajax-Anfrage für einige Daten starten, und nur bei respons senden/umleiten das Formular. Wenn Sie das obige Beispiel verwenden, wird die Anforderung nicht abgeschlossen, bevor das Formular gesendet wird. –

0

Ich denke, es wäre besser, die Aufgabe, die Abfrage einen externen Web-Service in einer Controller-Aktion auszuführen. Auf diese Weise würden Sie das Formular immer an die gleiche Controller-Aktion senden, die den Dienst abfragt und basierend auf den Ergebnissen entweder eine Ansicht rendert oder auf eine andere Aktion umleitet.

Verwandte Themen