Ankündigung

Einklappen
Keine Ankündigung bisher.

JavaScript: Zählen von Zeichen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • JavaScript: Zählen von Zeichen

    Hi.

    Eigentlich ein Anfängerproblem, doch auch ich mache etwas falsch.

    Ich habe ein einzeiliges Textfeld, in welchem eine Überschrift hineingeschrieben wird. Beim OnChange-Ereignis soll ein weiteres Textfeld einfach die Menge der eingegebenen Zeichen ausgeben.

    Code:
    <input type="text" name="MyHeadline" id="MyHeadline" ... onChange="document.all.MyCount.value=this.value.length;"> 
    <input type="text" name="MyCount" id="MyCount" ... readonly>
    sigpic
    Vielen Dank für Eure Zeit, Absicht, Mühe und für Eure Ideen. Grüße,
    Sven


  • #2
    onChange passiert aber erst beim Wechsel in ein anderes Feld. Sicher, dass Du nicht onKeyup o.ä. meinst?

    document.all.
    Du solltest wirklich langsam auf zeitgemäße Syntax umsteigen.
    --

    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


    --

    Kommentar


    • #3
      Nikosch, vielen Dank! Dies ist ein gutes Beispiel für einen echt dummen Fehler, mein Vertauschen von onChange und onKeyUp...

      Du erwähnst das Stichwort "zeitgemäße Syntax" in Bezug auf "document.all". Gib' mir einfach mal ein Beispiel für die Alternative, sonst kann ich keine Stellung dazu nehmen bzw. mir neues Wissen aneignen. Auch dafür schon mal vielen Dank.
      sigpic
      Vielen Dank für Eure Zeit, Absicht, Mühe und für Eure Ideen. Grüße,
      Sven

      Kommentar


      • #4
        Entweder Du benutzt jQuery, das ist auch für JS_Einsteiger gut zu handlen.
        Oder das moderene DOM-Modell von JS; bspw.

        document.getElementById ('MyCount').value = this.value.length;

        Inline-Events im HTML sind auch nicht so das Wahre, besser ist eine unobtrusive Variante via Ajax und Elementbezug von außen.
        --

        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


        --

        Kommentar


        • #5
          http://de.selfhtml.org/javascript/objekte/all.htm
          http://de.selfhtml.org/dhtml/modelle/ (hier ist vor allem das erste Kapitel relevant, die weiteren beschreiben nur noch die historischen Altlasten.)

          Kommentar


          • #6
            Prompte, gute Antworten! Das ist einer der Gründe, warum ich dieses Forum (und schon das Vorgängerforum) so schätze!

            Ich will weiter in die Tiefe gehen: warum ist die "GetElementByID"-Bauweise besser als diejenige, welche ich verwende?

            Ajax: wünschte, ich könnte es benutzen. Aber hier habe ich noch ganz große Verständnisprobleme. Hatte schon mal eine Test-Form (Online-E-Mail-Formular) gebaut, aber es hatte nie so richtig geklappt. Ich finde Ajax sehr gut, WENN es funktioniert (also wenn ich es auf anderen Websites sehe). Aber bei mir "will es einfach nicht"...
            sigpic
            Vielen Dank für Eure Zeit, Absicht, Mühe und für Eure Ideen. Grüße,
            Sven

            Kommentar


            • #7
              Zitat von SvenLittkowski Beitrag anzeigen
              Ich will weiter in die Tiefe gehen: warum ist die "GetElementByID"-Bauweise besser als diejenige, welche ich verwende?
              Ganz einfach - weil der standardisierte Weg ist, um sich im DOM zu bewegen. (getElementById ist natürlich nur ein winziger Teil davon.)

              document.all ist eine reine MS-Erfindung (und noch dazu eine wenig durchdachte), und wird nicht von allen Browsern unterstützt.
              Das DOM hingegen ist offizieller Standard, und den versteht jeder Browser, der relevant ist.


              Dass du das Forum hier lobst, ist fein - aber wenn du die Links, die dir angeboten werden, auch mal aufmerksam durcharbeiten würdest, so dass du solche Fragen anschliessend eigentlich gar nicht mehr stellen müsstest, das wäre noch feiner.

              Kommentar


              • #8
                Ganz einfach - weil der standardisierte Weg ist, um sich im DOM zu bewegen.
                Das bedeutet, dass auch andere Sprachen entsprechende Funktionen anbieten. Wer JS DOM-Zugriffe kennt, findet sich also bspw. auch schnell im PHP DOM zurecht. Selbiges gilt für XPath etc.
                --

                „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                --

                Kommentar


                • #9
                  Kritik angenommen, vielen Dank.

                  Meist steht mir nur sehr wenig Zeit zur Verfügung, so daß gradlinige Antworten für mich am besten sind - recherchieren kann ich (leider) nur an wenigen Tagen im Monat, wenn mal die Zeit dafür da ist. Deswegen kann ich oft auch den angebotenen Links kaum so richtig folgen, wie es ihnen eigentlich zusteht.
                  sigpic
                  Vielen Dank für Eure Zeit, Absicht, Mühe und für Eure Ideen. Grüße,
                  Sven

                  Kommentar


                  • #10
                    Ich kann Dir wirklich nur nochmal jQuery ans Herz legen.
                    --

                    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                    --

                    Kommentar

                    Lädt...
                    X