Claus Peter: onchange liefert keinen Rückgabewert

Beitrag lesen

Hallo,

aufgrund eines Tips aus dem Forum prüfe ich nun beim Absenden eines Formulars alle Felder.

Weil ich eine faule Sau bin, habe ich mir eine Funktion geschrieben, die nacheinander alle INPUTS eines Formulars anspricht (Listen sind in dem Form nicht vorhanden).

function CheckAllInputs()
{
  var pInput;

for(i=0; pInput=document.getElementsByTagName("input")[i]; i++)
  {
    if(null != pInput.onchange && "" != pInput.name)
    {
      if(false == pInput.onchange()) return false;
    }
  }
  return true;
}

Wie Ihr erkennen könnt, erfolgt der Aufruf der Testroutinen mit pInput.onchange(). Das funktioniert auch mit allen von mir getesteten Browsern (Opera, IE, Mozilla) soweit ganz gut. Nur, den Rückgabewert der Testfunktion (onchange()) kriege ich nicht zurück. Wenn ich den Funktionsausfruf in ein alert

alert(pInput.onchange());

einbaue, dann erhalte ich 'undefined'.

Aus dem INPUT direkt heraus funktionierts.

Weiss jemand eine Lösung (außer das Ergebnis der Testfunktion in einer globalen Variable speichern, das habe ich als work around erst einmal schon eingebaut)?

Liebe Grüße

Claus Peter