Moin!
Das mit den Formularen, deren Absendeverhalten, und der Verbindung zu Javascript läuft folgendermaßen:
Ausgangspunkt: Ein Formular ist bereits im Browser in einem Fenster (egal wie das entstanden ist) geladen. Es wird ausgefüllt.
Beim Klicken auf den Submit-Button wird die dort onclick ausgelöst. Weiterhin wird (ob davor oder danach, kann ich nicht auswendig sagen, Vermutung: danach) onsubmit im <form> ausgelöst, wenn ein Submit-Button oder die Methode submit() des Formulars benutzt wird.
Damit existieren zwei Ansatzpunkte, vor dem Absenden des Formulars Dinge zu erledigen.
Erst wenn onsubmit "true" zurückgegeben hat, wird das Formular abgeschickt. Dies geschieht vollkommen außerhalb des Einflußbereichst von Javascript, indem der Browser einfach eine neue Datei vom Server anfordert. Diese Anforderung geschieht wahlweise mit den HTTP-Methoden GET oder POST, wobei GET auch für die ganz normale Seitenanforderung benutzt wird (bei Formularen werden die Daten an die URL drangehängt - die bekannten Parameter eben), während POST die Daten fürs menschliche Auge unsichtbar mitschickt. Resultat in beiden Fällen: Der Browser schickt eine Seite zurück, die in deinem Fall schon im korrekt formatierten Fenster erscheinen soll.
Folglich ist es notwendig, das Fenster vor dem Abschicken des Formulars zu erzeugen (mit window.open), und dann mit target im <form> die vom Server zurückgeschickte Datei dorthinein zu leiten.
Wann du mit Javascript eingreifen kannst, ist dir jetzt bekannt. Wie du mit window.open den "HTML-Namen" für target setzen kannst, auch (ansonsten schau in SelfHTML nach). Daß du noch eine passende Zwischendatei brauchen könntest, welche direkt nach dem Öffnen des Popups geladen wird, bevor die Voting-Auswertung kommt, sei hier erwähnt.
- Sven Rautenberg