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?