000
20.01.2006, 10:13
Ornest
|
Morgen, folgendes Problem:
Für ein SMS-Versende-System soll anhand der Zeichen die Anzahl SMS berechnet werden. Dies soll in einem Formular mittels JavaScript geschehen. Bin nicht so der JavaScript-Pro, also bräuchte ich etwas Hilfe.
function zaehlen() { anzahl_zeichen = document.sms.text.value.length; document.sms.zeichen.value = anzahl_zeichen + 1; anzahl_sms = document.sms.sms_anzahl.value; anzahl_sms *= 1; if(document.sms.zeichen.value > anzahl_sms * 160) document.sms.sms_anzahl.value = anzahl_sms + 1; }
Diese Funktion wird jedes mal aufgerufen, wenn im Textfeld eine Taste gedrückt wird. Das Hochzählen der Anzahl SMS funktioniert auch, das Problem ist das runterzählen, wenn man Zeichen wieder weg macht. Stehe etwas auf dem Schlauch ...
--
|
|
Profil || Suche
|
001
20.01.2006, 10:35
scus
|
wie wärs wenn du einfach
document.sms.sms_anzahl.value = ceil( anzahl_zeichen / 160 );
machst?
/edit: ich hab keine ahnung, ob es die funktion ceil in js gibt, aber irgendeine zum aufrunden wirds wohl geben...
--
sincères amitiés scus -- Tand, Tand ist das Gebilde von Menschenhand
Dieser Beitrag wurde am 20.01.2006 um 10:37 von scus bearbeitet.
|
|
Profil || Suche
|
002
20.01.2006, 12:05
theDon
|
anzahl_sms *= 1; Sinn?
--
\o tanz den naziprau! o/
And more than ever, I hope to never fall, Where enough is not the same it was before
|
|
Profil || Suche
|
003
20.01.2006, 12:56
CN
|
<form name="sms"> <input type="text" readOnly="yes" name="nchars"><input type="text" readOnly="yes" name="nsms"><br /> <textarea name="text" onkeyup="this.form.nchars.value = this.value.length; this.form.nsms.value = Math.ceil(this.value.length / 160)"></textarea><br /> </form> warum nich einfach so? du hast da irgendwie nur mist gemacht, das ergibt gar keinen sinn
--
|
|
Profil || Suche
|
004
20.01.2006, 14:14
Ornest
|
document.sms.sms_anzahl.value = [b]Math.[/b]ceil( anzahl_zeichen / 160 );
Klappt wunderbar, vielen dank.
theDon postete
anzahl_sms *= 1; Sinn? Galileo OpenBook schrieb JavaScript führt zwar eine automatische Typenkonvertierung durch, aber nicht immer in die gewünschte Richtung:
var summe = "47" + 11 //liefert "4711" und nicht etwa 58 Hab daher so eine abartige Typkonvertierung durchgeführt.
CN postete warum nich einfach so? du hast da irgendwie nur mist gemacht, das ergibt gar keinen sinn Natürlich hab ich nur Mist gemacht, sonst wär ich doch nicht hier .. dir auch danke für deine Hilfe, habs aber nicht ausprobiert, da scus' Vorschlag direkt geklappt hat.
Fazit:
Ornest postete Bin nicht so der JavaScript-Pro ... Kann kein JavaScript
--
Dieser Beitrag wurde am 20.01.2006 um 14:15 von Ornest bearbeitet.
|
|
Profil || Suche
|
005
20.01.2006, 19:18
K-Putt
|
Kurzer Denkanstoß: Wer kein Auto fahren kann, lernt es erst, bevor er sich auf die AB begibt.
Mit veralteten Techniken wie dieser:
document.sms.text.value.length = wert;
wirst du wohl nur auf IE User abzielen können.
Korrekt sollte das lauten:
<input type="text" id="text" /> ... document.getElementById("text").value = wert;
dann klappts auch mit modernen Browsern.
--
Rambo Engineer @ Drippy's 2fort - finest TFC 1.5 || Bild Upload || The world's most advanced open source database
|
|
Profil || Suche
|