Holen Sie sich die Zeichen zählen, textarea inklusive Zeilenumbrüche
Getestet habe ich diesen code in Chrome und es scheint ein Fehler mit den Zeilenumbrüchen. Mich erreichen Sie das maxlength-bevor ich wirklich alle Charaktere.
JS:
var ta = document.getElementById('myText');
document.getElementById('max').innerHTML = ta.maxLength;
setInterval(function() {
document.getElementById('count').innerHTML = ta.value.length;
}, 250);
HTML:
<textarea id="myText" maxlength="200" style="width:70%;height:130px">
Lorem Ipsum is simply dummy text of the printing and typesetting industry.
Lorem Ipsum has been the industry's standard dummy text ever since the 1500s
Type more words here...
</textarea>
<div>
Char Count <span id="count">0</span>/<span id="max">0</span>
</div>
Wie kann ich genau Holen Sie sich die char-Anzahl der textarea?
Update 1
Ich berichtete von dem bug auf der Chromium-team und es scheint eine niedrige Priorität.
Update 2
Dieser Fehler wurde mit einer anderen zusammengeführt bug.
Update 3
Der Fehler scheint behoben zu sein!
- Rollen Sie Ihre eigenen
maxlength
- Eigenschaft statt über den browser. - Also willst du die Zeilenumbrüche gezählt oder nicht? Und anstatt polling mit
setInterval
verwendenkeyup
oderkeypress
als angemessen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Scheint ein WebKit-bug (halte Einreichung es) im Zusammenhang mit der Behandlung von CR/LF-paar als zwei Zeichen anstelle von einem. Da es in der Regel unkritische, wenn, sagen wir, 197 Zeichen erlaubt sind statt 200, es ist in Ordnung, dies zu ignorieren.
Aber wenn Sie möchten, können Sie versuchen, kontinuierlich speichern Sie Cursor-position ersetzen alle
\r\n
zu\n
und wiederherstellen Cursor-position in textarea während der Benutzer Text eingibt.\r\n
), line feed auf Mac OS besteht aus einem Zeichen (carriage return, CR,\r
), so\r
und\n
haben gleiche Länge — 1, und es ist logisch zu erwarten, dass das Problem nicht reproduziert auf Mac OS. IE6 ist hier irrelevant, da die Unterstützung für HTML5-Validierung ist nur Hinzugefügt, in IE10 (und, BTW, funktioniert einwandfrei, im Gegensatz zu Chrome).maxlength
sollten mit den Zeichen berichtet in der textarea.