dreamer75: onsubmit-Problem

Hallo,
wenn ich richtig gelesen habe, tritt das Event onsubmit ein, wenn ein Anwender ein Formular absendet.

Zu meinem Problem habe ich folgendes Beispiel:

  
<form action="" onsubmit="javascript:alert('Submit')">  
<input type="Submit" value="Button Submit">  
<input type="button" value="Javascript Submit" onclick="document.forms[0].submit()">  
</form>  

Ich habe also zwei Buttons, welche beide das Formular absenden.

Das onsubmit Event scheint aber nur beim ersten Button ausgelöst zu werden!?

Habe ich etwas falsch gemacht oder woran liegt das?

Danke im Voraus für die Hilfe!

  1. Hallo, dreamer75,

    Das onsubmit Event scheint aber nur beim ersten Button ausgelöst zu werden!?

    genau so ist es. Wenn du die .submit()-Funktion direkt aufrufst, wird das submit-Event nicht aufgerufen. Siehe z. B. auch hier.
    Gruß

    --
    Science flies you to the moon.
    Religion flies you into buildings.
    selfcode: ie:{ fl:| br:^ va:? ls:< fo:{ rl:( n4:{ ss:} de:[ js:} ch:{ sh:) mo:? zu:)
    1. Danke fürs Antworten...

      genau so ist es. Wenn du die .submit()-Funktion direkt aufrufst, wird das submit-Event nicht aufgerufen. Siehe z. B. auch hier.

      Das habe ich auch bemerkt, aber ich verstehe die Logik nicht.

      Der Aufruf der .submit()-Funktion sollte meiner Meinung nach das Event auslösen und der Eventhandler dann mit der definierten Funktion und erst anschliessend mit der Default-Verarbeitung weiterarbeiten.

      Analog zum folgendem Beispiel:

        
      <form action="" onsubmit="alert('submit')">  
      <input name="button1" type="submit" value="Button 1" onclick="alert('Button 1 clicked')">  
      <input name="button2" type="button" value="Javascript Click" onclick="document.forms[0].elements['button1'].click()">  
      </form>  
      
      

      Dort wird beim Aufruf der .click()-Funktion ja auch das Event ausgelöst und der Eventhandler arbeitet mit der definierten Funktion, also dem alert('Button 1 clicked'), weiter und erst anschliessend wird die Default-Verarbeitung durchgeführt.

      Gruß