2010-04-20 11 views
6

Ich versuche, die Aktion eines HTML-Formulars zu erstellen, wenn der Benutzer auf die Schaltfläche Senden klickt.Jquery - Formularaktion dynamisch beim Senden erstellen?

So füllt der Benutzer ein Formular aus, klickt auf Senden, dann wird die Aktion erstellt dann wird tatsächlich gesendet. Der Grund dafür ist, weil das Formular eine Menge von Optionen enthält, die an ein Skript übergeben werden.

Wie würde ich das mit Jquery machen?

+0

Ich werde Sie warnen, darüber nachzudenken, was passiert, wenn Ihr Benutzer hat JS deaktiviert. Das Formular würde immer noch gesendet, aber ohne die Aktion des Formulars geändert werden. Wird dadurch das serverseitige Skript beschädigt? – josh3736

+1

Hi, normalerweise würde ich mich nicht auf JS für die Kernfunktionalität verlassen, aber das ist nur für ein In-House-Tool, das ich erstelle, also ist es kein so großes Problem. – Probocop

Antwort

11

Ungeprüfte, aber zumindest sollten Sie auf Ihrem Weg:

$('#myForm').submit(function (event) 
{ 
    var action = ''; 
    // compute action here... 
    $(this).attr('action', action); 
}); 
+0

Perfekt, danke! – Probocop

3

Verwenden jQuery submit Ereignis:

$(document).ready(function() { 
    $('#yourFormId').submit(function() { 
    $(this).attr('action', 'dynamicallyBuildAction'); 
    return false; 
    }); 
}); 
+0

Perfekt, Danke! – Probocop

0

Die einfache Javascript-Lösung eine Funktion haben würde:

function changeAction() { 
    this.action = 'the dynamic action'; 
    return true; 
} 

In dem Formular würden Sie das Onssubmit-Ereignis festlegen:

<form ... onsubmit="return changeAction();"> 

das gleiche zu tun mit jQuery wäre:

$(function(){ 
    $('IdOfTheForm').submit(function(){ 
    this.action = 'the dynamic action'; 
    return true; 
    }); 
}); 
Verwandte Themen