![]() |
[JavaScript] Textarea: Zeichen zählen (Problem mit Absätzen)
Hallo,
folgenden Code habe ich auf einer Seite, um die Zeichen zu zählen. Da der/die/das Textarea "smstext" darf maximal 160 Zeichen haben. Er zählt auch alles richtig, nur einen Absatz soll er doppelt zählen, da er ja aus 2 verschiedenen ASCII-Zeichen besteht (#10#13). Wie kann ich das mit JavaScript realisieren?
Code:
function limit()
{ var text = document.getElementById("smstext").value; if(text.length > 160) { text = text.substring(0, 160); document.getElementById("smstext").value = text; } var rest = 160 - text.length; var str = "" + rest + " Zeichen übrig"; document.getElementById("smsline").innerHTML = str; } |
Re: [JavaScript] Textarea: Zeichen zählen (Problem mit Absät
wird beim senden wirklich ein 13 + 10 gesendet? ist es nicht so das nur 13 bzw. nur 10 gesendet wird? 13 + 10 ist doch eigentlich nur auf alten Schreibmaschienen und unter Windows im Einsatz?!
|
Re: [JavaScript] Textarea: Zeichen zählen (Problem mit Absät
Ich weiß es klingt komisch. Aber ich habe es getestet:
- 160 Zeichen nur Buchstaben akzeptiert er und der Provider sagt, dass die SMS abgeschickt werden könne. - 159 Zeichen + 1 Absatz (1x Enter) sagt er, die Nachricht sei zu lang - 158 Zeichen + 1 Absatz (1x Enter) geht wieder Auf der Seite des Providers haben die auch ein SMS-Versand im Login-Bereich. Das script berechnet jeden Absatz auch als 2 Zeichen (Ich würde ja von dort auch abgucken, aber das ganze Script ist in ASCII-Codes o.ä. umgewandelt worden. :mrgreen:) |
Re: [JavaScript] Textarea: Zeichen zählen (Problem mit Absät
Ersetze doch #13#10 beim Zählen und nach dem Senden des Textinhaltes.
|
Re: [JavaScript] Textarea: Zeichen zählen (Problem mit Absät
Zitat:
Ich habe es mal getestet, aber er zählt noch wie vorher:
Code:
function limit()
{ var text = document.getElementById("smstext").value; text = text.replace(String.fromCharCode(13,10), "BR"); if(text.length > 160) { text = text.substring(0, 160); document.getElementById("smstext").value = text; } var rest = 160 - text.length; var str = "" + rest + " Zeichen übrig"; document.getElementById("smsline").innerHTML = str; } |
Re: [JavaScript] Textarea: Zeichen zählen (Problem mit Absät
Versuch es doch mal so
Code:
text = text.replace('\n', String.fromCharCode(13, 10));
|
Re: [JavaScript] Textarea: Zeichen zählen (Problem mit Absät
Ich danke dir, aber jetzt gibts ein anderes Problem.
Der FF zählt für den Absatz jetzt 2 Zeichen, der IE 3 Zeichen. :wall:
Code:
function limit()
{ var text = document.getElementById("smstext").value; text = text.replace('\n', String.fromCharCode(13, 10)); if(text.length > 160) { text = text.substring(0, 160); document.getElementById("smstext").value = text; } var rest = 160 - text.length; var str = "" + rest + " Zeichen übrig"; document.getElementById("smsline").innerHTML = str; } |
Re: [JavaScript] Textarea: Zeichen zählen (Problem mit Absät
Und damit es auch mit dem IE klappt...
Code:
text = text.replace('\r\n', '\n');
text = text.replace('\n', String.fromCharCode(13, 10)); |
Re: [JavaScript] Textarea: Zeichen zählen (Problem mit Absät
Zitat:
Mit einer Browserweiche hat es auch nicht geklappt. :( |
Re: [JavaScript] Textarea: Zeichen zählen (Problem mit Absät
Ok, hier ein neuer Versuch...
Code:
function limit() {
var text = document.getElementById('smstext').value; var newtext = ''; var i = 0; while (i < text.length) { if (text.charCodeAt(i) == 10) { newtext = newtext + String.fromCharCode(13, 10); } else if (text.charCodeAt(i) != 13) { newtext = newtext + text.charAt(i); } i++; } if(newtext.length > 160) { newtext = newtext.substring(0, 160); document.getElementById('smstext').value = newtext; } var rest = 160 - newtext.length; var str = "" + rest + " Zeichen übrig"; document.getElementById("smsline").innerHTML = str; } |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz