onsubmit() wird im Firefox nicht ausgeführt
Katharina
- javascript
Hallo,
ich habe ein HTML Formular mit mehreren Input Feldern sowie einem Submit Button. Die Werte in den Inputfeldern sollen über die Funktion onsubmit() abgesendet werden. Falls noch die Default-Werte in den Input Feldern stehen, soll '' übertragen werden (die Default-Werte sollen allerdings anschließend wieder in den entsprechenden Input Feldern stehen). Das Ganze passiert in folgender Javascript Methode:
function FormHandler() {
this.submitWithoutDefaultParams = function(event) {
var formelement = event.target;
var def = new Array();
for(var i=0; i<formelement.elements.length; i++)
{
if ((formelement.elements[i].type == 'text') && (formelement.elements[i].value == formelement.elements[i].defaultValue))
{
def[i] = true;
formelement.elements[i].value = '';
pwdLogger.log('Input'+i+': -'+formelement.elements[i].value+'-');
}
else
def[i] = false;
}
// Formular absenden
formelement.submit();
// Defaultparameter wieder herstellen, falls nötig
for(var i=0; i<formelement.elements.length; i++)
{
if (def[i] == true) {
formelement.elements[i].value = formelement.elements[i].defaultValue;
}
}
return false;
}
this.clearOnClick = function(event)
{
var inputobj = event.target;
if(inputobj.value == inputobj.defaultValue)
{
inputobj.value = '';
}
}
}
var formHandler = new FormHandler();
Der EventHandler onsubmit wird dynamisch per Javascript an das Formular angehängt. Dazu wird die bind() Funktionalität aus dem Prototype Framework verwendet.
Beim Klick auf den submit-Button führt der IE die JS Methode auch richtig aus, der Firefox meldet auch keine Fehler, lediglich die Zeile formelement.submit() wird nicht ausgeführt.
Wer kann mir weiterhelfen?
Beim Klick auf den submit-Button führt der IE die JS Methode auch richtig aus, der Firefox meldet auch keine Fehler, lediglich die Zeile formelement.submit() wird nicht ausgeführt.
Bist du sicher das lediglich die Zeile nicht ausgeführt wird?
hast mal getestet welcher wert in formelement steht?
Und welchen Wert hat formelement.submit (ohne Klammer)
Struppi.
Beim Klick auf den submit-Button führt der IE die JS Methode auch richtig aus, der Firefox meldet auch keine Fehler, lediglich die Zeile formelement.submit() wird nicht ausgeführt.
Hallo,
nur so ne Idee - ist dein <script>-tag vollständig, d.h. steht da auch type="text/javascript" drin?
Ich meine mal gelesenzuhaben, das FF Schwierigkeiten hat, wenn's nicht drin steht. Kann aber auch sein, das ich mich jetzt total vertue.
MfG
Crossi
Hallo Crossi,
nur so ne Idee - ist dein <script>-tag vollständig, d.h. steht da auch type="text/javascript" drin?
Klar, alles vorhanden ;-)
Hallo Struppi,
Bist du sicher das lediglich die Zeile nicht ausgeführt wird?
hast mal getestet welcher wert in formelement steht?
Und welchen Wert hat formelement.submit (ohne Klammer)
Ja, ich bin mit dem Debugger den Code durchgegangen. Alles klappt sehr gut, auch die Zeile mit dem submit() läuft der Debugger durch, allerdings passiert nichts.
Das formelement ist ein HTML Formular Element. Ausserdem habe ich mir mal formelement.submit ausgeben lassen (per alert):
'function submit() { [native code] }'
Sieht richtig aus, oder?
Danke und Grüße,
Katharina
Das formelement ist ein HTML Formular Element. Ausserdem habe ich mir mal formelement.submit ausgeben lassen (per alert):
'function submit() { [native code] }'Sieht richtig aus, oder?
Jo. Dann weiß ich auch nicht weiter.
Struppi.