Gunther Blenk: toUpperCase in Eingabefeldern

Hallöchen!
Es geht um folgendes:
Der erste Buchstabe (und der erste Buchstabe nach bestimmten Sonderzeichen) in einem input-Eingabefeld soll automatisch groß geschrieben werden, auch wenn er klein eigegeben wird. Dafür habe ich schon eine Lösung gefunden, die jedoch noch eine entscheidende Schwäche hat: Wenn man die Eingabe zu schnell tippt funktioniert meine Lösung nicht und der erste Buchstabe erscheint trotzdem kleingeschrieben.
Hier ist meine bisherige Lösung:

Im head:

function func_name(wert)
{
var Großschreiben="_:./,- !?";
if(wert.length==1 ||
Großschreiben.indexOf(wert.substr(wert.length-2, 1))>=0)
   {
   document.formular.name.value=wert.substr(0, wert.length-1) +
   wert.substr(wert.length-1, 1).toUpperCase();
   }
}

im body dann:

<form name="formular" ... >
<input type="text" name="name" ... onKeyUp="func_name(value);" />
...

Hat jemand eine Idee, wie man diese Lösung verbessern könnte, so daß sie immer funktioniert, unabhängig von der Tipp-Geschwindigkeit. Oder brauche ich einen völlig anderen Ansatz?

Schon jetzt vielen Dank für Eure Hilfe und bis demnächst!

Gunther Blenk

  1. abend,

    muss es direkt bei der eingabe korrigiert werden ? wenn nicht
    würde folgender lösungsansatz helfen...


    <HTML><HEAD><TITLE>uppercaseMyself</TITLE>
    <script language="JavaScript">
     function upperMyself( ) {
      myObj = document.getElementById( "mytext" );
      firstLetter = myObj.value.substr( 0, 1 );
      myObj.value = firstLetter.toUpperCase() + myObj.value.substr( 1 );
     }
    </script>
    </HEAD>
    <BODY>
    onChange = <input type=text name=mytext id=mytext onChange="upperMyself( )"><br>
    </BODY>
    </HTML>


    HIH

    mfg,
    (tanz das)
    Z.N.S.

    --
    <img src="http://www.dmp-web.de/comunicout/neubauten.gif" border="0" alt="">