Struppi: Probleme mit addEventListener

Beitrag lesen

function validate_contact_form_data()
{
    var contact_form = document.contact_form;

Hier könntest du theoretisch einfach schreiben:
var contact_form = this;

.. aber der IE übergibt dem Event nicht this, deshalb ist attachEvent so nicht brauchbar. Deshalb ist es sinnvoller sich eionen eigenen Eventlistern zu bauen der in allen Browsern die Events kennen funktioniert und this übergibt.
http://javascript.jstruebig.de/js/add_event.js

Dann sieht der code so aus:

<script type="text/javascript" src="add_event.js"></script>  
<script type="text/javascript">  
function validate_contact_form_data()  
{  
 var contact_form = this;  
    var name = contact_form.name.value;  
    var error_message = '';  
  
    if (name.length == 0)  
    {  
        error_message += 'Bitte geben Sie Ihren Namen ein.\n';  
    }  
    else if (name.length < 3)  
    {  
        error_message += 'Der Name muss mindestens drei Zeichen lang sein.\n';  
    }  
  
    if (error_message.length == 0)  
    {  
        return true;  
    }  
 return false;  
}  
  
addEvent(window, 'load', function() { addEvent(document.contact_form, 'submit', validate_contact_form_data); });  

Struppi.