Hajo Marten: INPUT TYPE=TEXT und Eventhandler

Beitrag lesen

Hai @all,

ich habe ein kleines Problem:
Ich möchte in einem Eingabefeld alle eingegebenen Buchstaben in
Grossbuchstaben umwandeln (direkt bei der Eingabe) und nachdem der Anwender
das Eingabefeld verläßt, die eingegebene Zeichenkette überprüfen.

Mein Ansatz dazu sieht wie folgt aus:

<html>
   <head>
      <title>Test</title>
      <script language="JavaScript">
      <!--
         function checkInput(eingabeFeld) {
            alert("Eingabe:\n"" + eingabeFeld.value + """);
         }

function transformToUpperCase(eingabeFeld) {
            var strUpperCase;
            strUpperCase = eingabeFeld.value.toUpperCase();
            eingabeFeld.value=strUpperCase;
         }
      // -->
      </script>
   </head>
   <body>
      <form name="Test">
         <input type=text size=30 name="Eingabe" language=javascript
onkeyup="transformToUpperCase(Eingabe)" onchange="checkInput(this)">
      </form>
   </body>
</html>

Leider wird onchange nicht aufgerufen.
Folgendes dagegen funktioniert:

<html>
   <head>
      <title>Test</title>
      <script language="JavaScript">
      <!--
         function checkInput(eingabeFeld) {
            alert("Eingabe:\n"" + eingabeFeld.value + """);
         }

function transformToUpperCase(eingabeFeld) {
            var strUpperCase;
            strUpperCase = eingabeFeld.value.toUpperCase();
            eingabeFeld.value=strUpperCase;
         }
      // -->
      </script>
   </head>
   <body>
      <form name="Test">
         <input type=text size=30 name="Eingabe" language=javascript
onkeyup="alert(window.event.keyCode)" onchange="checkInput(this)">
      </form>
   </body>
</html>

Statt der Konvertierungsfunktion rufe ich hier nur einfach ein flottes
"alert" auf.
Meine Fragen:
Wieso funktioniert das obere Konstrukt nicht?
Gibts ggf. bessere/andere Lösungen um die Eingabe von Buchstaben in
Grossbuchstaben umzuwandeln?

Für massig Tips und Hinweise bin ich jetzt schon dankbar.

Ciao, Hajo