Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
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.

Quellcode: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 ...

--

zum Seitenanfang zum Seitenende Profil || Suche
001
20.01.2006, 10:35
scus



wie wärs wenn du einfach
Quellcode: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.
zum Seitenanfang zum Seitenende Profil || Suche
002
20.01.2006, 12:05
theDon



Quellcode: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

zum Seitenanfang zum Seitenende Profil || Suche
003
20.01.2006, 12:56
CN



Quellcode:<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

--

zum Seitenanfang zum Seitenende Profil || Suche
004
20.01.2006, 14:14
Ornest



Quellcode:document.sms.sms_anzahl.value = [b]Math.[/b]ceil( anzahl_zeichen / 160 );
Klappt wunderbar, vielen dank.

Zitat:
theDon postete
Quellcode:anzahl_sms *= 1; Sinn?
Zitat:
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.

Zitat:
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:

Zitat:
Ornest postete
Bin nicht so der JavaScript-Pro ...
Kann kein JavaScript

--


Dieser Beitrag wurde am 20.01.2006 um 14:15 von Ornest bearbeitet.
zum Seitenanfang zum Seitenende 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:
Quellcode:document.sms.text.value.length = wert;
wirst du wohl nur auf IE User abzielen können.

Korrekt sollte das lauten:
Quellcode:<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

zum Seitenanfang zum Seitenende Profil || Suche