Textfeld mit nur max. Anzahl Worte ?
lima-city → Forum → Die eigene Homepage → HTML, CSS & Javascript
abschneiden
anzahl
bearbeitung
benutzer
code
einfaches abschalten
eingabe
formular
getrennt danke
links verwenden
output
schneide
text
textfeld
trennen
url
verwenden
vorteil
wort
zeichen
-
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 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
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 -
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. -
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 -
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 -
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 -
daswing schrieb:
Das hast du bei jeder Art von clientseitigen Überprüfungen... genauso bei File-Uploads mit der maximalen Größe ...
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.
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. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage