Mit Prototype ein Form checken

Post von realloc | Einsortiert in Code am 9. Juni 2010 | Keine Kommentare

Ich habe heute wieder ordentlich ‘rumgetrödelt. Immer wenn ich mit Javascript zu tun habe, passieren irgendwelche Sachen oder Dinge funktionieren einfach nicht so, wie ich mir das vorstelle. Das hat wenig damit zu tun, dass Javascript so furchtbar wäre (was in Teilen sicher auch nah an der Wahrheit ist), sondern ist ganz simpel damit zu erklären, dass mir die Konzepte mancher Frameworks hin und wieder irgendwie fremd sind.

jQuery oder prototype zu nutzen, gehört ja nicht unbedingt zu ganz doofen Ideen. Der ganze Stress mit der Browser-Kompatibilität sollte damit an sich der Vergangenheit angehören. Welches nun das bessere Framework ist, kann und will ich nicht beantworten. Mit Sicherheit hat der Kunde da immer das letzte Wort und der Einsatzzweck ist auch nicht unerheblich, wenn es um die Frage des richtigen JS-Frameworks geht.

Heute ging es um ein Formular, das neben allerlei Manipulationen im DOM mittels prototype schließlich auch testen sollte, ob die AGBs akzeptiert wurden. Zu diesem Zweck stand auch eine HTML-Checkbox zur Verfügung, welche die sinntragende ID “agb” verpasst bekommen hatte. Damit ich nicht wieder Ewigkeiten nach so einer simplen Sache suchen muss, schreibe ich mir das lieber wieder auf.

document.observe("dom:loaded", function(){
    $('myform').observe('submit', function(e){
        if($('agb').checked != true){
            alert('Bitte nehmen Sie auch die AGB zur Kenntnis!');
            Event.stop(e);
        }
    });
});

Sobald das HTML-Document geladen ist, kann man das submit-Event des Formulars – in meinem Fall mit der ID “myform” – überwachen. Sobald das Ereignis eintritt, wird geprüft ob die Checkbox mit der ID “agb” mit einem Haken versehen wurde. Sollte das nicht der Fall sein, wird eine entsprechende Meldung ausgegeben und das Event gestoppt, was dazu führt, dass  das Formular nicht übertragen wird.

Im Fehlerfall false zurückzuliefern, bringt gar nichts, was mir heute wieder in Erinnerung gerufen  wurde, sondern das Ereignis als solches muss nur gestoppt werden. Have fun!

Möglicherweise interessiert Dich auch...



Einen Kommentar schreiben