• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Frage Eine Form 2 Submit-Button

Runshak

Mitglied
Hallo,

ich weiß, wie ich eine Form mit einem input Feld mit Hilfe von JavaScript Submitten kann.

Wie kann ich das ganze gestalten, wenn ich eine Form und mehrere Input-Felder habe und zwei buttons. Je nach Button werden andere Inputfelder submitted.
Jedes Inputfeld hat einen Namen und Value was submitted werden soll.

Kann man das mit Hilfe von IDs lösen?

Dass das ganze nur mit Hilfe von JS und nicht rein mit HTML gelöst werden kann ist doch so korrekt oder?
 
Werbung:
Wie kann ich das ganze gestalten, wenn ich eine Form und mehrere Input-Felder habe und zwei buttons. Je nach Button werden andere Inputfelder submitted.
Nein, beide Buttons schicken immer alles Eingabefelder ab. Die Buttons bekommen jeweils einen eigenen Namen bzw. unterschiedliche Werte und das auswertende Script muss dann auf Namen/Wert des übertragenden Buttons reagieren und die entsprechenden Felder auswerten.

Dass das ganze nur mit Hilfe von JS und nicht rein mit HTML gelöst werden kann ist doch so korrekt oder?
Natürlich kannst du mit jedem Button auch ein Javascript aufrufen welches die nötigen Felder einsammelt und an den Server schickt - der Sinn darin erschließt sich mir aber nicht (generell der Sinn ein Formular mit Javascript abzuschicken nur bedingt (z.B. Formulare die nur aus einer Auswahlliste bestehen und nach der Auswahl eines Elements abgeschickt werden sollen)).
 
Warum nicht ein Click triggern:
Javascript:
document.getElementById('myElementID').click();
Aber wenn du nur eine Form hast, bringt das nichts...
 
Zuletzt bearbeitet:
Werbung:
Kann ich die Form dann umbauen, sodass ich zwar noch inputs habe aber zwei buttons und keine Form mehr?

Ich habe bisher eine Form mit einem input-feld vom typ text und dazu noch einige weitere inputs vom Typ hidden. der eine Button soll den Text vom Eingabefeld nehmen und submitten. Also bis hier eine ganz normale Form mit Submit. Das klappt auch wunderbar. Jetzt zum zweiten Teil. Der zweite Submit-Button soll jetzt ebenfalls den Text aus dem Eingabefeld nehmen und weitere inputs (die hidden-Inputs) zusammen mit dem eingegebenen Text submitten.
Im ersten Fall ist der Link (das was submitted wird) kurz und im zweiten Fall länger.

Aber so viel ich weiß kann man das Problem nicht mit HTML lösen, also wollte ich hierfür Javascript verwenden. Denn ich möchte keine zwei Eingabefelder für den User machen sondern nur eines
 
Ich habe bisher eine Form mit einem input-feld vom typ text und dazu noch einige weitere inputs vom Typ hidden. der eine Button soll den Text vom Eingabefeld nehmen und submitten. Also bis hier eine ganz normale Form mit Submit. Das klappt auch wunderbar. Jetzt zum zweiten Teil. Der zweite Submit-Button soll jetzt ebenfalls den Text aus dem Eingabefeld nehmen und weitere inputs (die hidden-Inputs) zusammen mit dem eingegebenen Text submitten.
Im ersten Fall ist der Link (das was submitted wird) kurz und im zweiten Fall länger.
Ein Submit-<button> "nimmt" nicht irgendwelche Werte und schickt sie irgendwo hin, ein <button> sorgt nur dafür dass der Browser das Formular abschickt und zusammen mit dem Inhalt aller Eingabefelder an die Zielseite schickt. Wenn es mehrere <button> gibt, werden ebenfalls alle Eingabefelder mit geschickt, bei den Buttons wird allerdings nur name-/value-Paar des Buttons mitgeschickt über den das Formular abgeschickt wurde. Wie ich schon in #2 schrieb: du brauchst also überhaupt kein Javascript, du prüfst einfach im auswertenden Script über welchen Button das Formular abgeschickt wurde, das Script das die versteckten inputs nicht braucht kann diese ja einfach ignorieren.

Oder sollen die beiden Buttons zu zwei verschiedenen Scripten führen? Auch in dem Fall brauchst du kein Javascript sondern das formaction-Attribut für den <button>.
 
Ja, das klingt gut, aber wie wird das mit dem auswerten/ignorieren von inputs gelöst? Das ist ja genau mein Problem, bei dem ich nicht weiß wie ich das zu machen habe.
 
Werbung:
Ja, das klingt gut, aber wie wird das mit dem auswerten/ignorieren von inputs gelöst? Das ist ja genau mein Problem, bei dem ich nicht weiß wie ich das zu machen habe.
Wohin werden denn die Daten geschickt bzw. welche Sprache ist da Serverseitig im Spiel? Prinzipiell greift einfach jedes Script auf die Daten zu die es benötigt, nicht benötigte Daten sind dann zwar da, stören aber auch nicht, es wird einfach nicht darauf zugegriffen.
 
es wird an die google suche geschickt. Erster button ist ne normale suche mit dem eingegebenen Suchbegriff und der andere button soll den ersten link des Suchergebnisses öffnen und braucht deswegen mehrere attribute zusätzlich

HTML:
        <form action="https://www.google.com/search">
            <input id="searchterm" class="field" type="text" name="q"> <br>
            <input id="submitnormal" class="clickmich" type="submit" value="Google Search" >
            <input id="luck1" type="hidden" name="btnI" value=" 手气不错 " >
            <input id="luck2" type="hidden" name="newwindow" value="1" >
            <input id="luck3" type="hidden" name="hl" value="zh-CN" >
            <input id="luck4" type="hidden" name="source" value="hp" >
            <input id="luck5" type="hidden" name="ei" value="EQoKY6-YC86S-AaSpqj4DQ" >
            <input id="luck6" type="hidden" name="iflsig" value="AJiK0e8AAAAAYwoYIXWE1x4vKY8Jbo8ZBfPTzfiWorqD" >
            <input id="submitluck" class="clickmich" type="submit" value="I&#39;m Feeling Lucky" >
        </form>
 
es wird an die google suche geschickt.
Dein Ernst? Warum steht sowas nicht gleich in der Frage? Da die Google-Suche prinzipiell auch ohne Javascript funktioniert, ist dafür kein JS nötig. Allerdings hat Google wohl CSRF-Schutz eingebaut und die Auf-gut-Glück-Funktion funktioniert (im Gegensatz zur normalen Suche) durch Nachbauen des Formulars nicht - zumindest kommt beim Versuch nicht die Weiterleitung sondern eine Seite die fragt ob man weitergeleitet werden möchte.

Jetzt erhebt sich allerdings die Frage: warum sollte man das Google-Suchfeld nachbauen?
 
Werbung:
Die Weiterleitung kommt, das ist aber so in Ordnung. Ich baue die Suche nach, da ich einen Kurs absolviere, und es dort als Hausaufgabe gestellt ist. Wenn ich die Buttons separat habe funktioniert auch beides wie es soll. Nur eben zusammen nicht. Und das wollte ich ändern bzw. benötige Hilfe
 
Zurück
Oben