Claus Peter: onChange feuert nicht immer mit IE 6

Hallo,

mit IE 6.0.2800.1106 habe ich folgendes Problem:

In einem Input habe ich einen onChange Handler installiert:

<input type="text" name="Test" value="42" onChange="return test(this)">

So weit, so gut. Bei Anfügen einer zusätzlichen Ziffer wird auch die Funktion test() aufgerufen.

Ist das Resultat der Änderung aber "false" (hier zum Testen immer) und wird dann mit Backspace die letzte Ziffer wieder gelöscht, dann wird der onChange-Handler nicht mehr aufgerufen. Opera funktioniert da ausnahmsweise.

Entferne ich das "return" in der onChange-Anweisung, funktioniert das zwar, aber dann würde das Formular im Fehlerfall abgesendet.

Wer kann mir helfen?

Danke schon mal im voraus.

Claus Peter

-------------------------------------------------------------------
Hier nochmal der komplette Quelltext zum ausprobieren:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>

<head>
  <title>Test</title>
  <meta http-equiv="expires" content="0">
  <meta http-equiv=Content-Language content="de">
  <meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">

<script type="text/javascript" language="JavaScript">
  <!--
  function test(pElt)
  {
  alert("false");
  return false;
  }
  // -->
  </script>

</head>

<body>

<form name="TEST" method="POST">
<input type="text" name="Test" value="42" onChange="return test(this);">
</form>
</body>
</html>

  1. Hallo,

    so ganz verstehe ich noch nicht, was Du basteln wolltest.

    Die Funktion test() gibt doch immer false zurück.
    Wozu ist sie dann überhaupt gut?

    function test(pElt)
      {
        alert("false");
        return false;
      }

    <input type="text" name="Test" value="42" onChange="return test(this);">

    BTW: der obige Code hätte von der Menge her genügen sollen, um zu erklären, was Du willst.

    LG
    Chris

    1. Die Funktion test() gibt doch immer false zurück.
      Wozu ist sie dann überhaupt gut?

      Hi,

      in diesem Fall zum testen immer false.
      In meiner Seite habe ich da natürlich eine Abfrage stehen;-)

      BTW: der obige Code hätte von der Menge her genügen sollen, um zu erklären, was Du willst.

      Naja, ich dachte, so zum testen ist es einfacher.

      Grüße

      Claus Peter

  2. hi,

    Entferne ich das "return" in der onChange-Anweisung, funktioniert das zwar, aber dann würde das Formular im Fehlerfall abgesendet.

    Wenn du das Absendeverhalten des Formulars beeinflussen willst - -dann nutze lieber onSubmit auf dem form selber.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Wenn du das Absendeverhalten des Formulars beeinflussen willst - -dann nutze lieber onSubmit auf dem form selber.

      Hallo,

      klar geht das. Nur habe ich es bislang vermieden, irgendwelche Prüfe_das_gesamte_Formular_auf_Fehler_Monster_Testfunktionen zu schreiben.

      Hast Du denn noch eine Idee, warum der IE hier nicht so will? Prinzipiell ist doch ein "return" im onChange nicht unzulässig, oder?

      Grüße

      Claus Peter