Johnny: Namenseingaben in Formular formatieren

Hallo,

ich möchte Formulareingaben automatisch weiterverarbeiten. Das Problem sind dabei Fehleingaben der User, die ich gerne per Javascript umformatieren möchte. Ein Script zur Ersetzung von Umlauten habe ich bereits gefunden.

Jetzt noch zwei Fehlerquellen wegformatieren und dann sind 98% aller Eingabefehler korrigiert:

1. Die Eingabe beginnt nicht mit einem Großbuchstaben.
2. Am Ende der Eingabe sind Leerzeichen angehängt, die dann später als "=20" auftauchen.

Ich bräuchte jetzt ein Script, welches mir für alle Formularfelder die ersten Buchstaben groß macht und eventuell am Ende anhängende Leerzeichen löscht. Also aus "björn " wird "Bjoern"...

Kann mir da jemand weiterhelfen?
Muchas Gracias!
JOhnnY

  1. Hallo,

    ich möchte Formulareingaben automatisch weiterverarbeiten. Das Problem sind dabei Fehleingaben der User, die ich gerne per Javascript umformatieren möchte. Ein Script zur Ersetzung von Umlauten habe ich bereits gefunden.

    Jetzt noch zwei Fehlerquellen wegformatieren und dann sind 98% aller Eingabefehler korrigiert:

    1. Die Eingabe beginnt nicht mit einem Großbuchstaben.
    2. Am Ende der Eingabe sind Leerzeichen angehängt, die dann später als "=20" auftauchen.

    Ich bräuchte jetzt ein Script, welches mir für alle Formularfelder die ersten Buchstaben groß macht und eventuell am Ende anhängende Leerzeichen löscht. Also aus "björn " wird "Bjoern"...

    Kann mir da jemand weiterhelfen?
    Muchas Gracias!
    JOhnnY

    hallo,

    dieses scrip't macht den ersten buchstaben des übergebenen strings zum grossbuchstaben...

    function firstCharUp(string){
            var word = string;
            var firstChar = word.charAt(0).toUpperCase();
            var rest = word.substring(1,word.length);
            word = firstChar.concat(rest);
    return word;
    }

    fürs  entfernen von leerzeichen kannst ja was verwenden, wie
    word = word.replace(/" "/,"");
    dies entfernt allerdings alle leerzeichen, auch die zwischen den worten, aber du kannst ja den substring vom letzten buchstaben bis zum stringende ermitteln und diesen dann löschen, falls es möglich sein muss, dass mehrere worte in einem string (feld) stehen

    1. Hallo Gant,

      dieses scrip't macht den ersten buchstaben des übergebenen strings zum grossbuchstaben...

      ----------------
      kurz vorweg: Bis eben wußte ich noch gar nicht, was Javascript ist, und nun sitze ich seit fast 30 Stunden nonstop am Rechner und zieh mir eine Info über Javascript nach der anderen rein (faszinierend!) ... Darum entschuldige meinen Dilletantismus... Ich möchte dies Problem auf jeden Fall noch lösen, bevor ich dann erschöpft ins Bett falle... ;-)

      Ich brauch die Funktion in einem Formular, deshalb ist wohl "onBlur" am besten (hab ich gerade gelernt... ;-)
      http://selfhtml.teamone.de/javascript/sprache/eventhandler.htm#onblur

      Dort habe ich dann Deine Funktion eingebaut, sieht dann so aus:

      <html><head><title>Test</title>
      </head><body>
      <form name="Test" action="">
      Name: <input type="text" name="Eingabe" onBlur="firstCharUp(this.value)"><br>
      Name oder nichts eingeben und dann woanders hinklicken!
      </form>
      <script type="text/javascript">
      document.Test.Eingabe.focus();
      function firstCharUp(string){
          var word = string;
              var firstChar = word.charAt(0).toUpperCase();
              var rest = word.substring(1,word.length);
              word = firstChar.concat(rest);

      (( word = word.replace(/" "/,""); || Das habe ich dann auch nochmal versucht, klappt aber auch nicht...

      return word;}
      </script>
      </body></html>
      ---------------------------
      Das Dumme ist, daß sich so nichts rührt. Ich kann eingeben, was ich will, der Inhalt des Feldes bleibt unverändert... String falsch übergeben? Oder falsch zurückgegeben? Oder Funktion funzt net? Wo liegt das Problem...?

      dies entfernt allerdings alle leerzeichen, auch die zwischen den worten, aber du kannst ja den substring vom letzten buchstaben bis zum stringende ermitteln und diesen dann löschen, falls es möglich sein muss, dass mehrere worte in einem string (feld) stehen

      --- das kommt vor, bei Doppelnamen. Insofern wäre das schon gut, wenn nur die letzten Leerzeichen gelöscht würden. Wie ich mir eine solche Funktion selber zusammenbastel, rätsel ich seit Stunden. Ich versteh den ganzen Aufbau der Sprache noch nicht so richtig. Eigentlich ist es bestimmt gaaaanz einfach, wenn man denn weiß wie... Mir raucht der Kopf...

      Also ich fänd es supergenial, wenn Du mir den Fehler da oben rausmachen könntest und vielleicht den substring noch ermitteln, wie immer man sowas macht... ;-)

      Mille Grazie, Johnny

      1. Hallo,

        das war die ausgangsfunktion:

        function firstCharUp(string){
                var word = string;
                var firstChar = word.charAt(0).toUpperCase();
                var rest = word.substring(1,word.length);
                word = firstChar.concat(rest);
        return word;
        }

        statt return word;

        kannst du auch schreiben:
        document.test.Eingabe.value = word;

        Odium

        1. Heyyo,

          statt return word;
          kannst du auch schreiben:
          document.test.Eingabe.value = word;

          -------
          das ist genial - weil es funktioniert! Yippey!

          Nur die Geschichte hier zuckt noch gar nicht:

          word = word.replace(/" "/,"");

          Auch wenn ich´s so schreibe tut sich nix:

          document.Test.Eingabe.value = word.replace(/" "/,"");

          Wobei es echt besser wäre, die Leerzeichen würden in dieser Funktion gleich mit und nur am Ende abgeschnitten - aber mit EURER HILFE, liebes Forum, krieg ich das auch noch hin... Ich bin so aufgeregt... ;-))
          JOhnnY

          1. Na wer sagt´s denn. Dilletantisch und bestimmt die uneleganteste Lösung, aber I DID IT MYSELF!!!

            Die Magie des Verstehens sozusagen... <grins>

            Meine Routine ist mit Sicherheit mehr was für die Witzecke, aber sie tut ihren Dienst und ist immerhin auch das erste, was ich überhaupt in Javascript zustande gebracht habe... Tolles Gefühl: Mein Computer gehorcht mir... Hehe... Oki, für die alten Hasen nun nochmal was zu Lachen:

            <script type="text/javascript">
            document.Formular.namex.focus();
            function chupname(string){
                var word = string;
                    var firstChar = word.charAt(0).toUpperCase();
                    var leng = word.length;
              leng--;
              var leng2 = leng - 1;
              var leng3 = leng - 2;
              var last = word.charAt(leng);
              var last2 = word.charAt(leng2);
              var last3 = word.charAt(leng3);
              var rest = word.substring(1,word.length);
            if (last == " ") {var rest = word.substring(1,leng); }
            if (last2 == " ") {var rest = word.substring(1,leng2); }
            if (last3 == " ") {var rest = word.substring(1,leng3); }
              word = firstChar.concat(rest);
            document.Formular.namex.value = word;}
            </script>

            Falls es sich lohnt, diese Routine gegen was Eleganteres zu ersetzen und einer von euch das nicht mit ansehen kann, schick mir gerne was Optimiertes an meine Email-Addy...

            Auf jeden Fall mal ein großes DANKE an alle, die sich hier tummeln! Fantastische Einrichtung, dieses Forum!

            Alles Gute,
            ein begeisterter Johnny...