Tietze: Syntax Error bei document.formular.submit();

Hallo,

folgender Code gibt mir manchmal einen Syntax Error bei der Zeile

"document.formular.submit();"

aus. Aber nicht jedesmal, hängt scheinbar irgendwie davon ab, was für Daten in dem Formular sind. Kann mir da jemand sagen woran das liegen könnte? Hier ist der Code.

function checker() {
 checkthis('boot');
 checkthis('adac');
 checkthis('bwvs');
 checkthis('Bank');
 checkthis('Apotheke');
 checkthis('Post');
 checkthis('Arzt');
 checkthis('Gaststaette');
 checkthis('Lebensmittel');
 checkthis('Einkaufen');
 checkthis('Hallenbad');
 checkthis('Freibad');
 checkthis('Reiten');
 checkthis('Tennis');
 checkthis('Museum');
 checkthis('Radverleih');
 checkthis('behindertenger');
 checkthis('Bootscharter');
 checkthis('Waeschetrockn');
 checkthis('Waschmasch');
 checkthis('Telefon_ma');
 checkthis('Gasservice');
 checkthis('Kinderspielplatz');
 checkthis('Camping');
 checkthis('Übernachtung');
 checkthis('Grillplatz');
 checkthis('Wetterstation');
 checkthis('Erste_Hilfe');
 checkthis('Kabelfernsehen');
 checkthis('StramSteg');
 checkthis('Strom');
 checkthis('WaamSteg');
 checkthis('Wasser');
 checkthis('WC');
 checkthis('Dusche');
 checkthis('Altoel');
 checkthis('Sondermuell');
 checkthis('Abfall');
 checkthis('Chemietoiletten');
 checkthis('Faekalienschüttstelle');
 checkthis('Bilgenentsorgung');
 checkthis('Segelservice');
 checkthis('Motorenservice');
 checkthis('Werkstatt');
 checkthis('Werft');
 checkthis('Bootszubehör');
 checkthis('Trailerstellplaetze');
 checkthis('Autoparken');
 checkthis('Slip');
 checkthis('Tankstelle_Diesel');
 checkthis('Tankstelle_Benzin');
 checkthis('Bunkern_Diesel');
 checkthis('Bunkern_Benzin');

document.formular.submit();

}

function checkthis(uebergabe) {

if (document.formular.elements[uebergabe].checked)
  {
  }
  else
  {
  document.formular.elements[uebergabe].value = "0";
  document.formular.elements[uebergabe].checked = "true";
  }
}

Das Formular hat den Namen "formular". Es wird immer geprüft ob das Feld einen Haken hat, wenn nicht wird ein Haken gesetzt und der Wert auf 0 gesetzt. Damit das Feld mit übergeben wird.

Danke und Gruß

Tietze

  1. folgender Code gibt mir manchmal einen Syntax Error bei der Zeile

    "document.formular.submit();"

    Bist du sicher, dass es das Formular 'formular' gibt?

    In so einem Fall ist es sinnvoll sich diese mal mit z.b. alert ausgeben zu lassen:

    alert(typeof document.formular);

    aus. Aber nicht jedesmal, hängt scheinbar irgendwie davon ab, was für Daten in dem Formular sind. Kann mir da jemand sagen woran das liegen könnte? Hier ist der Code.

    Das klingt merkwürdig. Testest du deine Skript mit Mozilla? Dort solltest du eigentlich Fehlermeldungen erhalten die dir sagen was falsch ist.

    function checkthis(uebergabe) {

    if (document.formular.elements[uebergabe].checked)
      {
      }
      else
      {
      document.formular.elements[uebergabe].value = "0";
      document.formular.elements[uebergabe].checked = "true";
      }
    }

    Das ist nicht korrekt. false/true ist ein Datentyp kein String.

    Bessser (und sauberer)
    var obj = document.formular.elements[uebergabe];
    if(obj && !obj.checked)
    {
    obj.value = 0;
    obj.checked = true;
    }

    Hier könntest du auch noch einen Test hinmachen ob obj wirklich eine Checkbox ist.

    Struppi.

    1. Hallo Struppi,

      ich habe deinen Code eingebaut. Das Problem ist trotzdem noch nicht gelöst.
      Ich werde mir mal Mozilla installieren.

      Das komische ist, wenn die letzten vier Funktionaufrufe von checkthis wegnehme. Dann geht das bei enigen Datensätzen und bei anderen kommt wieder diese Syntax Error.

      Ich schau mal was Mozilla sagt....

      Gruß

      Tietze

    2. Hallo Struppi,

      alert(typeof document.formular);

      er sagt mir dann, das es ein object ist.

      Das klingt merkwürdig. Testest du deine Skript mit Mozilla? Dort solltest du eigentlich Fehlermeldungen erhalten die dir sagen was falsch ist.

      Bei Mozilla funzt das. Das schein ein IE Problem zu sein. Kennt jemand das Problem?

      Deinen Code habe ich übernommen.

      Gruss

      Tietze

      1. Das klingt merkwürdig. Testest du deine Skript mit Mozilla? Dort solltest du eigentlich Fehlermeldungen erhalten die dir sagen was falsch ist.

        Bei Mozilla funzt das. Das schein ein IE Problem zu sein. Kennt jemand das Problem?

        Das deutet darauf hin, dass du in deinem Code ein Objekt hast mit dem gleichen Namen (evtl. eine JS Funktion).

        Im Mozilla kannst du dir Warnungen und Fehlermeldungen unter Webdevelompent > JS Konsole angucken.

        Struppi.

        1. Hallo Struppi,

          Das deutet darauf hin, dass du in deinem Code ein Objekt hast mit dem gleichen Namen (evtl. eine JS Funktion).

          Im Mozilla kannst du dir Warnungen und Fehlermeldungen unter Webdevelompent > JS Konsole angucken.

          Mozilla sagt, alles OK. Keine Fehler in der Konsole.
          Auf Opera und NS läuft es auch, nur auf dem IE nicht!
          Das muss doch auch auf dem IE zum laufen zu kriegen sein...

          Gruß

          Thies

          1. Hallo Tietze

            Hallo Struppi,

            Das deutet darauf hin, dass du in deinem Code ein Objekt hast mit dem gleichen Namen (evtl. eine JS Funktion).

            Im Mozilla kannst du dir Warnungen und Fehlermeldungen unter Webdevelompent > JS Konsole angucken.

            Mozilla sagt, alles OK. Keine Fehler in der Konsole.

            Auch keine Warnungen?

            Auf Opera und NS läuft es auch, nur auf dem IE nicht!
            Das muss doch auch auf dem IE zum laufen zu kriegen sein...

            klar.

            Es gibt also kein andere Objekt mit dem gleichen Namen in deinem Dokument?

            Struppi.