Katharina: onsubmit() wird im Firefox nicht ausgeführt

Hallo,

ich habe ein HTML Formular mit mehreren Input Feldern sowie einem Submit Button. Die Werte in den Inputfeldern sollen über die Funktion onsubmit() abgesendet werden. Falls noch die Default-Werte in den Input Feldern stehen, soll '' übertragen werden (die Default-Werte sollen allerdings anschließend wieder in den entsprechenden Input Feldern stehen). Das Ganze passiert in folgender Javascript Methode:

function FormHandler() {

this.submitWithoutDefaultParams = function(event) {
    var formelement = event.target;

var def = new Array();
    for(var i=0; i<formelement.elements.length; i++)
    {
      if ((formelement.elements[i].type == 'text') && (formelement.elements[i].value == formelement.elements[i].defaultValue))
       {
        def[i] = true;
        formelement.elements[i].value = '';
        pwdLogger.log('Input'+i+': -'+formelement.elements[i].value+'-');
      }
      else
        def[i] = false;
    }

// Formular absenden
    formelement.submit();

// Defaultparameter wieder herstellen, falls nötig
    for(var i=0; i<formelement.elements.length; i++)
    {
      if (def[i] == true) {
        formelement.elements[i].value = formelement.elements[i].defaultValue;
       }
    }
    return false;
  }

this.clearOnClick = function(event)
  {
    var inputobj = event.target;
    if(inputobj.value == inputobj.defaultValue)
    {
      inputobj.value = '';
    }
  }
}

var formHandler = new FormHandler();

Der EventHandler onsubmit wird dynamisch per Javascript an das Formular angehängt. Dazu wird die bind() Funktionalität aus dem Prototype Framework verwendet.

Beim Klick auf den submit-Button führt der IE die JS Methode auch richtig aus, der Firefox meldet auch keine Fehler, lediglich die Zeile formelement.submit() wird nicht ausgeführt.

Wer kann mir weiterhelfen?

  1. Beim Klick auf den submit-Button führt der IE die JS Methode auch richtig aus, der Firefox meldet auch keine Fehler, lediglich die Zeile formelement.submit() wird nicht ausgeführt.

    Bist du sicher das lediglich die Zeile nicht ausgeführt wird?
    hast mal getestet welcher wert in formelement steht?
    Und welchen Wert hat formelement.submit (ohne Klammer)

    Struppi.

    --
    Javascript ist toll (Perl auch!)
    1. Beim Klick auf den submit-Button führt der IE die JS Methode auch richtig aus, der Firefox meldet auch keine Fehler, lediglich die Zeile formelement.submit() wird nicht ausgeführt.

      Hallo,

      nur so ne Idee - ist dein <script>-tag vollständig, d.h. steht da auch type="text/javascript" drin?

      Ich meine mal gelesenzuhaben, das FF Schwierigkeiten hat, wenn's nicht drin steht. Kann aber auch sein, das ich mich jetzt total vertue.

      MfG
      Crossi

      1. Hallo Crossi,

        nur so ne Idee - ist dein <script>-tag vollständig, d.h. steht da auch type="text/javascript" drin?

        Klar, alles vorhanden ;-)

    2. Hallo Struppi,

      Bist du sicher das lediglich die Zeile nicht ausgeführt wird?
      hast mal getestet welcher wert in formelement steht?
      Und welchen Wert hat formelement.submit (ohne Klammer)

      Ja, ich bin mit dem Debugger den Code durchgegangen. Alles klappt sehr gut, auch die Zeile mit dem submit() läuft der Debugger durch, allerdings passiert nichts.

      Das formelement ist ein HTML Formular Element. Ausserdem habe ich mir mal formelement.submit ausgeben lassen (per alert):
      'function submit() { [native code] }'

      Sieht richtig aus, oder?

      Danke und Grüße,
      Katharina

      1. Das formelement ist ein HTML Formular Element. Ausserdem habe ich mir mal formelement.submit ausgeben lassen (per alert):
        'function submit() { [native code] }'

        Sieht richtig aus, oder?

        Jo. Dann weiß ich auch nicht weiter.

        Struppi.

        --
        Javascript ist toll (Perl auch!)