kostenloser Webspace werbefrei: lima-city


Textfeld mit nur max. Anzahl Worte ?

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    seofav

    seofav hat kostenlosen Webspace.

    Hallo

    ich habe einen JavaScript zum zählen der eingetragenen Worte in ein (Formular) Textfeld.

    <script type="text/javascript" language="JavaScript">
    
    function wordcount() { 
       var maxtags = 12;
       var data = document.form1.ntags.value;
       var extract = data.split(" ");
       var output = (extract.length - 1); 
       document.getElementById('ntagsinfo').innerHTML = output;
    }
    
    </script>
    
    
    
    <form name="form1" method="post" action="index.php">
    ...
    
     <input type="text" name="ntags" size="68" onkeyup="wordcount()" />
     <br /> (Tags durch Leerzeichen trennen: <span id="ntagsinfo">0</span> von max. 12 Tags) 
    
    ...
    <input type="submit" name="go" value="Speichern" />
    </form>


    das funktioniert soweit schon ganz gut,
    aber wie kann ich nach erreichen der max. Anzahl der Worte (hier 12)
    verhindern, dass weitere Worte eingetragen werden können,

    bzw. wenn jemand eine Wort-Liste mit mehr Worten per copy-paste einträgt
    dass dann aber nur die max. Anzahl im Formular ankommt / bleibt

    also quasi so.... wenn Wortanzahl == Maximum erreicht
    dann weitere Eingabe ab dem Ende leztes Wort abschneiden

    oder wie? ....
    wie kann ich sicherstellen, dass nur die maximale Wortanzahl eingegeben werden kann ?

    Textfeld mit nur max. Anzahl Worte ? ... nicht Zeichen, Worte !!! (durch Leerzeichen getrennt)

    Danke !



    Beitrag zuletzt geändert: 12.12.2011 11:32:38 von seofav
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    Du könntest so was versuchen:
    <script type="text/javascript"><!--
    function check() {
        var data = document.getElementById('text').value;
        var words = data.split(" ");
        if(words.length > 7) { // 7 = maximale Wortanzahl
            var text = words[0];
            for(var i = 1; i < 7; i++)
                text += " " + words[i];
            document.getElementById('text').value = text;
        }
    }
    // --></script>
    <input type="text" onkeypress="check()" id="text">


    Beitrag zuletzt geändert: 12.12.2011 14:28:34 von hackyourlife
  4. w**************n

    zumindest für css-3 fähige Browser gibt's da "text-overflow".
    Wenn man den auf clip setzt, schneidet er den Rest ab. Bin aber nicht sicher ob der auch für input-Felder funktioniert und wenn, dann ist es wie gesagt nur die elegante, schlanke Version für alle modernen Browser. Das javascript als Fallback wird wahrscheinlich immer noch benötigt.
  5. anti-atomkraft

    Kostenloser Webspace von anti-atomkraft

    anti-atomkraft hat kostenlosen Webspace.

    JavaScript:
    function wordcount() { 
     var maxtags = 12;
     var data = document.form1.ntags.value;
     var extract = data.split(" ");
     var output = (extract.length - 1); 
    if(output<=maxtags){
    document.getElementById('ntagsinfo').innerHTML = output;
    return true; }
    else { return false; } }


    HTML:
    <form onSubmit="return wordcount();">
    <input onkeyup="return wordcount();">
    </form>


    Beitrag zuletzt geändert: 9.5.2012 18:35:06 von anti-atomkraft
  6. Vielleicht solltest du dir mal das hier www.it-academy.cc/article/1475/Javascript:+maximale+Laenge+fuer+TextareaInhalt.html (wie kann man Texte als Links verwenden?) angucken, ich glaube das ist genau das, was du suchst.

    Beitrag zuletzt geändert: 9.5.2012 19:06:45 von raphael811
  7. daswing

    Moderator Kostenloser Webspace von daswing

    daswing hat kostenlosen Webspace.

    Jede Javascript-Variante kann durch einfaches abschalten von Javascript umgangen werden. Deswegen ist ein Serverseitiges prüfen auf jeden Fall von Vorteil und sollte unbedingt eingesetzt werden.
    Wurde dann zu viel eingegeben so schneide per PHP das überschüssige ab und gebe es den Benutzer noch einmal zur Bearbeitung. Das Javascript würde ich nur als Zähler verwenden.

    mfg Stephan
  8. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    daswing schrieb:
    Jede Javascript-Variante kann durch einfaches abschalten von Javascript umgangen werden. Deswegen ist ein Serverseitiges prüfen auf jeden Fall von Vorteil und sollte unbedingt eingesetzt werden.
    Wurde dann zu viel eingegeben so schneide per PHP das überschüssige ab und gebe es den Benutzer noch einmal zur Bearbeitung. Das Javascript würde ich nur als Zähler verwenden.
    Das hast du bei jeder Art von clientseitigen Überprüfungen... genauso bei File-Uploads mit der maximalen Größe ...
    Ein guter Tipp: egal was clientseitig passiert, jede Eingabe musst du auf jeden Fall serverseitig noch einmal prüfen (um auch so Dinge wie SQL-Inections oder XSS zu filtern).

    Ein Beispiel für die JavaScript-Prüfung gibt es auch hier auf lima-city (Eingabe der Signatur), wobei hier nur die Zeichen gezählt werden... das darf nie eine serverseitige Prüfung ersetzen, sondern dient vielmehr des aufmerksam-machen des Users und ihn auf Eingabefehler hinzuweisen.
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!