Wie Sie HTML-Formulare ohne einen server
Ich bin kein web-Entwickler und verstehen will, der bessere Weg zur übergabe von Variablen. In der Vergangenheit habe ich verschiedene Möglichkeiten, passieren Dinge, die für die java-script-Funktionen. Ich habe noch nie verwendet Formen, wie ich immer im Zusammenhang mit server und Datenbanken. Ich habe eine website, in der Benutzer die Auswahl ändert sich der Inhalt der website.
Frage ich mich, wenn Sie können Formulare ohne server nur als einen Weg zu passieren ein paar Dinge, die eine javascript-Funktion, wo Sie verwendet werden, um zu ändern den Inhalt der Seite. Für basic-Beispiel, wenn jemand wählt Männchen der Seite, hintergrund wird blau, wenn Sie die Auswahl weiblichen der hintergrund wird rosa. Würde Formen werden der Weg zu gehen und nur onsubmit aufrufen einer javascript-Funktion? Wie würde ich mich tatsächlich übergeben Sie das Formular Inhalte an die javascript-Funktion?
InformationsquelleAutor slimbo | 2011-05-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, Sie können absolut verwenden Sie Formulare/Eingänge/jede Art von html-element und reden nie einen server, nur erwarten Sie nicht, um die Daten zu speichern! Du hast Recht, über die Verwendung von Ereignissen (wie dem "onsubmit" ein, die Sie erwähnt) zum auslösen von Javascript-Funktionen.
Hier ist eine quick-and-dirty-Beispiel (stark verschmutzt) vorhanden ist, die sorta kinda, was Sie möchten. Beachten Sie, dass anstatt zu warten, für der form vorgelegt werden, bevor die Farbe zu ändern, ich gehe voran und tun Sie es sofort, nachdem Sie wählen Sie ein Geschlecht aus der dropdown-Liste.
http://jsfiddle.net/wG8K4/1/
InformationsquelleAutor James
Würden Sie nicht auf die übergabe der Parameter. Sie hätte "onsubmit" - Aufruf einer javascript-Funktion, und dann innerhalb der Funktion verwendet javascript, um den Zugriff auf die eigentlichen Kontrollen, die der Benutzer ausgewählt hat. Können Sie mit der GetElementById-Funktion zum abrufen eines bestimmten Elements, und bestimmen Sie den Wert des Elements.
Wenn alles, was Sie tun wollte, war, ändern Sie die Hintergrundfarbe, könntest du javascript verwenden, ändern Sie die Hintergrundfarbe-Eigenschaft des body-tag oder alle Tags auf der Seite.
Würden Sie daran denken müssen, false zurück von Ihrer Funktion, wenn-sonst würde das Format eingereicht werden.
InformationsquelleAutor Cynthia
Brauchen Sie nicht, der Server /die Datenbanken für die Verwendung von Formularen. Formen sind einfach eine Methode, von der Weitergabe Variablen von einer Datei zur anderen, unabhängig davon, ob das ist eine html-Datei oder einem php-Skript oder was auch immer. Wenn Sie bleiben, um mit GET-Formularen das Formular wird natürlich pack die Daten in die URL Ihrer Seite an die Zeit, die Sie auf Sie zugreifen können. Zum Beispiel (ausgeliehen von http://www.onlineaspect.com/2009/06/10/reading-get-variables-with-javascript/):
InformationsquelleAutor Jage
Den grundlegenden Veranstaltung, die Sie gehen, um zu suchen, ist die form
submit
Veranstaltung. Wenn Sie in Ordnung sind nur mit Hilfe von event-Handlern können Sie nur so etwas tun:Weil Sie nur mit Hilfe von JavaScript, die Sie nicht möchten, dass das Formular tatsächlich abschicken. (Seite Punkt: Da bist du mit JS sollte man nur auf das Formular und fügen Sie es auf die Seite mit JS, aber das ist ein ganz anderes Thema.) Sie können Abbrechen, die form ist Standard-Aktion etwa so:
Bevor wir in den Zugriff auf Daten, stellen Sie sicher, dass Sie greifen die Elemente, die Sie gehen zu müssen. Es macht die Dinge ein wenig schneller, weil Sie nicht haben, wählen Sie das gesamte element aus dem DOM jedes mal, wenn das Formular abgeschickt wird. Zum Beispiel:
Je nachdem, welche Art von Formular-Elemente, die Sie haben, gibt es verschiedene Möglichkeiten, um auf Ihre Daten zugreifen. Textfelder, Textbereiche, Auswahlfelder, sind sehr einfach:
Radio-buttons und check-Boxen sind ein wenig komplizierter, weil Sie haben zu gehen durch jeden einzelnen und sehen, welche man(N) wird/werden überprüft, und die man(N) nicht/sind nicht, wie so:
Gehen mit Ihrem Beispiel von blau/rosa hintergrund, würden Sie wahrscheinlich wollen etwas ähnliches wie das hier:
Hinweise
Wenn Sie tun entscheiden, zu gehen mit dem event-Handler, im Hinterkopf behalten, dass nur eine angewendet werden kann, um Ihre form zu einem Zeitpunkt. Wenn Sie möchten, fügen Sie eine andere Funktion, um die
submit
Veranstaltung, die Sie gehen müssen mit event Zuhörer, das ist eine ganz andere ball-Spiel und präsentiert seine eigenen Probleme mit sich.Das Letzte Beispiel prüft nur den Wert von "ich bin ein Kerl" - element, denn (vermutlich), Sie sind über radio-buttons und Sie haben nur zwei Optionen. Wenn "ich bin ein Kerl" nicht aktiviert ist, dann sollte der andere sein. Aber wenn die form beginnt mit weder option aktiviert haben, dann könnte als ein bug.
Das Letzte Beispiel verwendet auch die inline-styles zu ändern der Körper die Hintergrundfarbe. Es schmerzte mich zu geben. Ein viel erträglicher Methode zum hinzufügen/entfernen von Klassen wie nötig, aber wieder, das ist eine Art, über den Rahmen dieser Frage.
InformationsquelleAutor sdleihssirhc
Formular-Elemente können verwendet werden als eine form der globalen Variablen - holding state, die verwendet werden können, und die teilen sich alle den javascript-Code in eine einzige Seite.
Jedoch, dies könnte dazu führen, spröde und schwer zu verstehen code.
Schlage ich vor, halten mit der übergabe von Parametern an Funktionen, so lange wie Sie sind in den Kontext einer einzelnen Seite.
Wenn Sie brauchen, um die übergabe von Daten an eine andere Seite, dann bildet sich das Leben erleichtern kann - mit einem
GET
form, die Werte an das Formular übergeben werden, um die Seite verwiesen, in der formaction
Attribut als Schlüssel-Wert-Paare. Wenn Sie diePOST
Methode, die Sie übertragen werden, in den Headern.InformationsquelleAutor Oded
Wenn Ihr Wunsch ist zu Durchlaufen, Formular-Elemente mit Hilfe von Javascript können Sie dies ganz einfach mit dem DOM-da die form haben
length
Eigenschaft und jedeinput
vertreten sein wird als index für dieses array-artiges Objekt:Also für:
Könnte man etwas wie das hier tun:
InformationsquelleAutor mVChr