tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
9
ZUGRIFFE
521
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Technoblade Technoblade ist offline Mitglied Gold
    Registriert seit
    Feb 2009
    Beiträge
    193
    Hi,

    ich hab ein Problem, das viele andere vor mir wohl auch schon hatten wie ich an den google-Ergebnissen merken konnte. Ich habe in einem JavaScript-Quellcode das Problem, dass ich ein formular submitten möchte. Nur immer an der Stelle kommt die Fehlermeldung, dass form.submit keine Funktionn sei. Der übliche Fehler, dass ich im Formular irgendwo submit als name angegeben hätte ist ausgeschlossen, da document.writeln(form.submit) nur undefined ausgibt. Kann mir irgendjemand helfen?
    Hier ist mein Quelltext:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    
    <script type="text/javascript">
    var changes = new Array();
    var index;
     
    function addChange(index) {
        changes[index] = true;
    }
     
    function absenden() {
        var zeilen = document.getElementById("tabelle").rows;
        var form = document.createElement("hiddenForm");
        form.setAttribute("method", "POST");
        form.setAttribute("action", "index.php");
     
        for(var i = 0; i < changes.length; i++) {
            if(changes[i]) {
                var hiddenField = document.createElement("input");
                hiddenField.setAttribute("type", "hidden");
                hiddenField.setAttribute("name", zeilen[i][6]);
                hiddenField.setAttribute("value", document.getElementsByName("Bearbeiterauswahl" + i)[0].value);
            
                form.appendChild(hiddenField);
            } 
        }
        form.submit();
    }
    </script>
     

  2. #2
    CPoly CPoly ist gerade online Mitglied Weizenbier
    tutorials.de Premium-User
    Registriert seit
    Sep 2009
    Beiträge
    2.445
    Versuch es mal mit "form" anstatt "hiddenForm", denn der Parameter gibt an, was für ein Element erzeugt werden soll.

    Code javascript:
    1
    
    var form = document.createElement("form");
     

  3. #3
    Technoblade Technoblade ist offline Mitglied Gold
    Registriert seit
    Feb 2009
    Beiträge
    193
    Jetzt erhalte ich am Ende zwar keinen Fehler mehr, aber es passiert auch nichts. Und der Chrome-Debugger zeigt mir wenn ich an der Stelle nen Breakpoint setze und dann in der Konsole form.submit eingebe auch nur "undefined" an.
     

  4. #4
    CPoly CPoly ist gerade online Mitglied Weizenbier
    tutorials.de Premium-User
    Registriert seit
    Sep 2009
    Beiträge
    2.445
    Füg das Formular mal in die Seite ein, anstatt es nur im Speicher zu halten.

    Zitat Zitat von Technoblade Beitrag anzeigen
    Und der Chrome-Debugger zeigt mir wenn ich an der Stelle nen Breakpoint setze und dann in der Konsole form.submit eingebe auch nur "undefined" an.
    Vielleicht hat die Funktion keinen Rückgabewert.
     

  5. #5
    Technoblade Technoblade ist offline Mitglied Gold
    Registriert seit
    Feb 2009
    Beiträge
    193
    Das Formular wird über ein include durch php eingebunden und wird über einen simplen klick-Button aufgerufen bei onclick. Das hätte ich evtl. am Anfang schon sagen sollen.
     

  6. #6
    CPoly CPoly ist gerade online Mitglied Weizenbier
    tutorials.de Premium-User
    Registriert seit
    Sep 2009
    Beiträge
    2.445
    Du erzeugst aber doch in der absenden-Funktion erst das Formular.

    Sollte Zeile 11 vielleicht so lauten?

    Code javascript:
    1
    
    var form = document.getElementById("hiddenForm");
     

  7. #7
    Technoblade Technoblade ist offline Mitglied Gold
    Registriert seit
    Feb 2009
    Beiträge
    193
    Nein, Ich erzeuge das gesamte Formular absichtlich nur dort in der Methode. Ich habe eine Tabelle von Tickets bei denen ein Bearbeiter eingetragen werden soll. Wird dort ein Wechsel vorgenommen wird die methode addChange aufgerufen mit dem Index Zeilennummer.
    Über das unsichtbare Formular will ich jetzt per POST an den Server die ID's der geänderten zeilen, sowie den dort nun eingetragenen Bearbeiter senden.
    Dazu erstelle ich das Formular, trage dort die Daten ein, und will es dann absenden. das einzieg was nicht funktioniert ist eben dieses Absenden mit Submit.
     

  8. #8
    CPoly CPoly ist gerade online Mitglied Weizenbier
    tutorials.de Premium-User
    Registriert seit
    Sep 2009
    Beiträge
    2.445
    Ich wiederhole mich nochmal:

    Füg das Formular mal in die Seite ein, anstatt es nur im Speicher zu halten. Funktioniert bei mir ohne Probleme. Zusätzlich war aber auch das createElement falsch (form anstatt hiddenForm).

    Code javascript:
    1
    2
    3
    4
    5
    6
    
    var form = document.createElement("form");
     
    //...Kram...
     
    document.getElementsByTagName("body")[0].appendChild(form);
    form.submit();
     

  9. #9
    Technoblade Technoblade ist offline Mitglied Gold
    Registriert seit
    Feb 2009
    Beiträge
    193
    Danke, hab jetzt einfach nochmal das ganze mit deinem document.getElementByTagName("body")...
    ausprobiert und es funktioniert.
     

  10. #10
    Avatar von SonicBe@m
    SonicBe@m SonicBe@m ist offline Mitglied Brokat
    Registriert seit
    Jan 2002
    Ort
    München
    Beiträge
    447
    2late ;D
    gibt ja schon eine antwort
     
    Moep :)

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 19.04.10, 10:12
  2. Frage zu onChange="this.form.submit();
    Von xtramen01 im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 23.12.09, 08:34
  3. Antworten: 2
    Letzter Beitrag: 12.10.09, 16:31
  4. Antworten: 11
    Letzter Beitrag: 19.08.09, 14:01
  5. wieso "this.form.submit()" ?
    Von Soapp im Forum Javascript & Ajax
    Antworten: 5
    Letzter Beitrag: 21.09.06, 11:12