DonniD Geschrieben 5. Oktober 2010 Teilen Geschrieben 5. Oktober 2010 Hi zusammen, ich bin gerade am lernen für eine Prüfung und habe ein großes Problem mit DOM-Scripting. Meine Frage hat eigentlich "Kindergartenniveau" und dürfte für die meißten hier kein Problem sein, ich bin allerdings totaler Anfänger und komme einfach nich zurecht damit. Die Aufgabe lautet: Gegeben sei das folgende Formular zur Eingabe einer Kurznachricht (SMS). Während der Eingabe sollen in dem einzeiligen Texteingabefeld die noch verbleibenden Zeichen (maximal 160 sind erlaubt) angezeigt werden. <form action="" style="width: 300px;"> <p>Kurznachricht:<br /> <textarea name="sms text" rows="4" cols="30" onchange="sms()" onkeydown="sms()" onkeyup="sms()"></textarea><br /> Verbleibende Zeichen: <input name="chars left" value="160" type="text" size="3" maxlength="3" readonly="readonly" /></p> </form> Definieren Sie die JavaScript Funktion sms() und beachten Sie hierbei die folgenden Hinweise: 1. Definieren Sie innerhalb der Funktion eine lokale Variable input und weisen Sie dieser Variable den vom Benutzer eingegebenen Text der Kurznachricht zu. 2. Machen Sie innerhalb der Funktion eine Fallunterscheidung. Wenn der Text länger als 160 Zeichen ist, dann soll der Rest abgeschnitten und in das einzeilige Eingabefeld eine Null geschrieben werden. Andernfalls soll die Anzahl der noch verbleibenden Zeichen berechnet und der entsprechende Wert in dem einzeiligen Textfeld aktualisiert werden. 3. Die Länge eines Strings (Anzahl der Zeichen) erhält man über die Eigenschaft length. 4. Verwenden Sie die Funktion substr(), um von einem String eine Teilzeichenkette zu extrahieren. Die Funktion gibt die extrahierte Zeichenkette zurück und erwartet zwei Parameter: Die Position des ersten zu extrahierenden Zeichens in der Zeichenkette, wobei bei 0 zu zählen begonnen wird (Anfangsindex) und die Position des ersten nicht mehr zu extrahierenden Zeichens in der Zeichenkette (Endindex). Für den Zugriff auf die Formularelemente sollen DOM-Methoden verwendet werden. Es ist vielleicht viel Text, aber die Aufgabe ansich dürfte für Könner sehr schnell gelöst sein und auch nur wenige Zeilen Code lang sein. Vielleicht kann mir da ja jemand weiter helfen. Vielen Dank schon mal Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Schaelle Geschrieben 7. Oktober 2010 Teilen Geschrieben 7. Oktober 2010 Wie sieht denn dein bisheriger Ansatz zur Lösung aus? Hast du Fragen zu einem konkreten Problem? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
DonniD Geschrieben 7. Oktober 2010 Autor Teilen Geschrieben 7. Oktober 2010 hi, hab das Problem schon gelöst. Für die, dies eventuell auch interessiert, hier meine Lösung : function sms() { var input = document.getElementsByTagName('textarea')[0].value; /*alert("Input:"+input);*/ if(input.length > 160) { input = input.substr(0,161); document.getElementsByTagName('input')[0].value = 0; } else { document.getElementsByTagName('input')[0].value = (160 - input.length); } } Thx Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
FISI from Hell Geschrieben 7. Oktober 2010 Teilen Geschrieben 7. Oktober 2010 Bedenke, dass du bei 0 beginnst zu zählen und dementsprechend das 160. Zeichen [159] ist. Du gibst sozusagen 1 Zeichen zu viel aus. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.