Matthias Apsel: Verständnisproblem eventhandling

Beitrag lesen

Om nah hoo pez nyeetz, alle!

Ich habe ein Formualar, das vor dem Absenden auf gewisse Fehler geprüft werden soll. Verpasse ich dem Formular einen entsprechenden Handler

<form ... name="myform" onsubmit="return validieren();">

funktioniert das wunderbar, das Formular wird validiert und im Fehlerfall die Standardaktion unterdrückt.

Verwende ich jedoch (Quelle: molily)

~~~javascript function addEvent (obj, type, fn)
  {
     if (obj.addEventListener)
     {
       obj.addEventListener(type, fn, false);
     }
     else if (obj.attachEvent)
     {
       obj.attachEvent('on' + type, function () {return fn.call(obj, window.event);});
     }
  }

  
und  
  
  `addEvent(document.forms['myform'], 'submit', validieren);`{:.language-javascript}  
  
wird die Funktion validieren ausgeführt, das Formular jedoch trotzdem abgesendet. Die (ihre Arbeit im ersten Fall richtig machende) Funktion validieren sieht so aus  
  
  ~~~javascript
function validieren()  
  {  
	var fehleranzahl = 0;  
	// fehler suchen  
	if (fehleranzahl > 0)  
	{  
		alert('Bitte die Fehler beseitigen!');  
		return false;  
	}  
	return true;  
  }

Was übersehe ich dabei?

Warum wird im ersten Fall die Standardaktion unterdrückt, im zweiten jedoch nicht?

Matthias

--
1/z ist kein Blatt Papier.