Manuelles senden eines Formulars mit JavaScript, nicht senden die senden-Schaltfläche

Ich habe ein Formular mit zwei submit-buttons. Ich will das Formular senden manuell, mit JavaScript, und haben die Eingabe-Taste zum abschicken des Formulars gepostet, zusammen mit den anderen Formular-Elemente, wie es wäre, wenn das Formular abgesendet wurde automatisch. Es gibt ziemlich viel Gerede über dieses Thema, aber ich kann nicht finden, eine Antwort.

<form method="post" action="echoToScreenAndLog.jsp" id="form1"> 
    <input id="field1" name="field1"/>
    <input type="text" size="20" id="field2" name="field2"/>

    <input type="submit" value="Do One" name="sub1_name" id="sub1_id"/>
    <input type="submit" value="Do Two" name="sub2_name" id="sub2_id"/>
</form> 

Wenn das Formular abgeschickt wird oben mit dem "gehen" - Taste, werden die geposteten Parameter sind field1="xxx", field2="yyy", sub1_name="Do One".

Aber ich wollen, senden Sie das Formular manuell...

<form method="post" action="echoToScreenAndLog.jsp" id="form1"> 
    <input id="field1" name="field1"/>
    <input type="text" size="20" id="field2" name="field2"/>

    <input type="submit" value="Do One" name="sub1_name" id="sub1_id"/>
    <input type="submit" value="Do Two" name="sub2_name" id="sub2_id"/>
</form> 
<script type="text/javascript">
    var btn = document.getElementById('sub1_id');
    btn.onclick=function() {
        return mySubmit(document.getElementById('form1'), ...);
    }
</script>

aber dabei eine manuelle Eingabe der form, in der mySubmit - Funktion wirkt nicht nach den sub1_name parameter. Ich kann verstehen, dass - ich habe es umgangen, die Vorlage, so dass das Formular nicht gesendet werden, mithilfe der Schaltflächen und deshalb macht es keinen Sinn, die post-parameter repräsentieren die Schaltfläche zum senden des Formulars.

Wenn ich mir die Elemente der form, in der onclick handler, ich kann sehen, dass beide Tasten. Ich bin nicht übermäßig überrascht, dass entweder, Sie sind die Elemente auf dem Formular, nachdem alle, aber was ich nicht verstehe ist, dass wenn ich ein element in meinem onclick handler dann das element, füge ich hinzu gebucht WIRD und die beiden original-submit-buttons sind nicht gebucht. Nur um das Bild zu vervollständigen, hier ist der code, wird das element Hinzugefügt:

<script type="text/javascript">
    var btn = document.getElementById('sub1_id');
    btn.onclick=function() {
        var f = document.getElementById('form1');
        var s = document.createElement("input");
        s.type="hidden"; s.name="xsubmit_name"; s.value="Bob"; s.id="xsubmit_id";            
        f.appendChild(s);

        //s gets posted
        return mySubmit(f, ...);
    }
</script>

Hinzufügen das input-element könnte für mich arbeiten, aber ich bin verwirrt, wie der browser weiß, um post meine hinzugefügten element und nicht das original zwei input-Elemente.

Danke.

  • f ist nur ein Zeiger auf das Formular, damit updates tragen über. Sie müssen nur zur Erfassung der Schaltfläche, die ausgelöst Ihre Funktion und legen Sie es in das element. Warum sollte Sie sich sorgen über das hinzufügen Ihrer benutzerdefinierten senden sowieso? Ich denke, Sie könnten versuchen, hinzufügen einer onclick-methode wich gibt true oder false zurück, also die Entscheidung, Wetter oder nicht, übermitteln Sie die Daten durch die Standard-Methode und nur auf Ihrem Girokonto dort und leavinge die tatsächliche übermittlung an den browser. Hoffe, das funktioniert, zumindest für hyperlinks, die es tut.
  • Was genau macht mySubmit tun? Irgendeinem Grund Sie nicht verwenden können, die form ist onsubmit und lassen Sie das Formular Einreichen, in der Regel, nachdem alle Sie tun müssen in Ihrem Skript?
InformationsquelleAutor user265330 | 2011-12-20
Schreibe einen Kommentar