Steffen Wawryniuk: LÖSUNG für maximale Länge von Zeichen bei Formular TEXTAREA gefunden

Hi,
habe bei Lycos eine Lösung gefunden
vor 1 Woche hatte ich das Problem das ich die Zeichen in einer Textarea beschränken wollte bei ALLEN anderen Feldern geht das ja mit MAXLENGHT aber dort ja nicht...
im Forumsarchive waren keine PERFEKTEN Lösungen
hier nun die PERFEKTE Lösung (selbst das hineinkopiren von längeren Texten funktioniert nicht.

kopiert einfach alles hier drunter !!!
is komplett nen BEARBEITETER HTML-TAG

<BODY onLoad="timeAfterTime()">
<script language="JavaScript">
function timeAfterTime()
{
var ID=window.setInterval('CheckStr()',100)
}
function CheckStr(userInput)
{
// Die Variable StrLen (StringLength) steht fuer die Anzahl der eingegebenen Zeichen
StrLen = window.document.sms_input.msg.value.length;
// Wenn mehr als 130 Zeichen eingegeben werden, wird der Rest abgeschnitten; der Substring extrahiert vom ersten Wert (wir zaehlen von 0 an) bis zu dem letzten Wert, den er nicht mehr extrahieren kann (im Skript steht 130, aber da wir bei 0 angefangen haben zu zaehlen, ist der 131. gemeint)
if (StrLen > 130 )
{
window.document.sms_input.msg.value = window.document.sms_input.msg.value.substring(0,130);
StrLeft = 0;
}
// ansonsten sind noch so viele Zeichen uebrig
else
{
StrLeft = 130 - StrLen;
}
// und das sagen wir dem Benutzer jetzt auch
document.sms_input.Len.value = StrLeft;
}
</script>

<TABLE WIDTH="100%" BGCOLOR="#F0F0F0" BORDER="0" CELLSPACING="0" CELLPADDING="4">
<TD>
<br>
<FORM name="sms_input" action="http://www.lycos.de/cgi-bin/sms/send_sms3.cgi" METHOD=GET>
Bitte Text eingeben. Die maximale Länge beträgt 130 Zeichen.<br>
<textarea cols="26" rows="5" name="msg" MAXLENGTH="130" wrap="physical" onChange="CheckStr(this)" onFocus="CheckStr(this)" onBlur="CheckStr(this)" onKeyDown="CheckStr(this)" onKeyUp="CheckStr(this)" STYLE="overflow:hidden"></textarea>
<br>
Sie können noch <INPUT NAME=Len VALUE=130 SIZE=3> Zeichen eingeben.
<br>
<input type="submit" name="SUBMIT" value="Abschicken">
<input type="Reset" value="Zurücksetzen" name="RESET">
</FORM>
</td></tr></TABLE>
</BODY></HTML>

  1. hi ho

    <gruebel>wow, entfernt das script auch mein "Bearbeiten"-Menue (Netscape), wo ich JS abschalten kann?</gruebel>

    SCNR

    cua

    n.d.p.

  2. Hi Steffen,

    hier nun die PERFEKTE Lösung (selbst das hineinkopiren von längeren Texten funktioniert nicht.

    und was ist, wenn der user JS einfach deaktiviert? Tja, dumm gelaufen...
    Ich würde mich nur auf eine serverseitige prüfung verlassen, aber auch die kann nicht "perfekt" sein, denn bis das script auf dem server erstmal loslegen kann, ist der überflüssige traffic auch schon geflossen...

    bis denn...
    /*,*/
    Wowbagger

    1. @JS deaktiviert : arghhh stimmmt :((((

      naja trozdem die "perfekteste" Lösung BIS JETZT ;-)

  3. Hi,

    ich meine mich erinnern zu können, daß genau diese Lösung gennant wurde. Von mir oder von jemand
    anderem...

    Gruß,
    Slyh