Avatar billede apo Praktikant
07. oktober 2005 - 22:17 Der er 15 kommentarer og
2 løsninger

OleBole's tegntæller

OleBole lavede i et spørgsmål denne tegntæller, der tæller antallet af tegn skrevet i et textarea:

<script type="text/JavaScript">
function myCount(elm) {
    var myMax = 300, displ = document.getElementById('gnu');
    displ.innerHTML = elm.value.length;
    displ.style.color = (elm.value.length>=myMax)? "red" : "";
    if (elm.value.length>myMax) {
        alert("Hovhov, du ...!");
        elm.value = elm.value.substr(0, myMax);
        displ.innerHTML = myMax;
        return false;
    }
}
</script>
<textarea onkeyup="myCount(this)" onchange="myCount(this)"></textarea>
<br>
Der er ialt skrevet: <b id="gnu">0</b> tegn.

Hvordan kan den omskrives således, at den frem for at tælle op til maksimum, tæller fra maksimum og ned til 0?

Apo
Avatar billede driis Nybegynder
07. oktober 2005 - 22:22 #1
displ.innerHTML = myMax - elm.value.length;
Avatar billede olebole Juniormester
07. oktober 2005 - 22:22 #2
<ole>

Et hurtigt skud fra hoften:

<script type="text/JavaScript">
function myCount(elm) {
    var myMax = 300, displ = document.getElementById('gnu');
    displ.innerHTML = 300-elm.value.length;
    displ.style.color = (elm.value.length>=myMax)? "red" : "";
    if (elm.value.length>myMax) {
        alert("Hovhov, du ...!");
        elm.value = elm.value.substr(0, myMax);
        displ.innerHTML = 0;
        return false;
    }
}
</script>
<textarea onkeyup="myCount(this)" onchange="myCount(this)"></textarea>
<br>
Du har: <b id="gnu">300</b> tegn tilbage.

/mvh
</bole>
Avatar billede olebole Juniormester
07. oktober 2005 - 22:23 #3
- og ja ... da vi allerede har defineret myMax:
  displ.innerHTML = myMax-elm.value.length;  ;o)
Avatar billede olebole Juniormester
07. oktober 2005 - 22:23 #4
:)
Avatar billede apo Praktikant
07. oktober 2005 - 22:32 #5
Det ændrer ikke noget hos mig...

Vi er enige om at: displ.innerHTML = myMax;
skal erstattes af: displ.innerHTML = myMax - elm.value.length;

Ikke?
Avatar billede olebole Juniormester
07. oktober 2005 - 22:36 #6
<script type="text/JavaScript">
function myCount(elm) {
    var myMax = 300, displ = document.getElementById('gnu');
    displ.innerHTML = myMax -elm.value.length;
    displ.style.color = (elm.value.length>=myMax)? "red" : "";
    if (elm.value.length>myMax) {
        alert("Hovhov, du ...!");
        elm.value = elm.value.substr(0, myMax);
        displ.innerHTML = 0;
        return false;
    }
}
</script>
<textarea onkeyup="myCount(this)" onchange="myCount(this)"></textarea>
<br>
Du har: <b id="gnu">300</b> tegn tilbage.

- funker fint her  :)
Avatar billede driis Nybegynder
07. oktober 2005 - 22:36 #7
Det burde virke. Har du husket at reloade din testside ?
Avatar billede apo Praktikant
07. oktober 2005 - 22:39 #8
Jep det virker nu; jeg havde udskiftet den forkerte sætning.

Jeg har åbenbart vist et eksempel, som er blevet modificeret senere i det oprindelige spørgsmål. Det er dette script jeg bruger:

<script type="text/JavaScript">
function myCount(elm) {
    var myMax = 300, displ = document.getElementById('gnu');
    //displ.innerHTML = elm.value.length;
    displ.innerHTML = myMax - elm.value.length;
    displ.style.color = (elm.value.length>=myMax)? "red" : "";
    if (elm.value.length>myMax) {
        alert("Beskeden må maksimalt indeholde 300 tegn!");
        elm.value = elm.value.substr(0, myMax);
        displ.innerHTML = myMax;
        return false;
    }
}
</script>

Kan jeg få det til at vise maksantallet lige så snart siden åbnes, og ikke kun, som nu, når textarea'et er i fokus?
Avatar billede apo Praktikant
07. oktober 2005 - 22:44 #9
Det må næsten være i denne, der skal ændres noget, hvis det kan lade sig gøre:

<textarea onkeyup="myCount(this)" onchange="myCount(this)"></textarea>
<br>
Du har: <b id="gnu">300</b> tegn tilbage.
Avatar billede driis Nybegynder
07. oktober 2005 - 22:50 #10
Hvad skal ændres ? Virker det ?
Avatar billede apo Praktikant
07. oktober 2005 - 22:51 #11
driis > Det virker nu, men først når jeg har indtastet et tegn i textarea'et.

Kan det laves, så maksantallet vises ved åbning af siden?
Avatar billede apo Praktikant
07. oktober 2005 - 22:53 #12
... Når siden åbnes, vises makstallet som et 0. Først når jeg indtaster et tegn, står der 299.
Avatar billede driis Nybegynder
07. oktober 2005 - 23:00 #13
Har du html'en til at stå som:
Du har: <b id="gnu">300</b> tegn tilbage. ?
Avatar billede apo Praktikant
07. oktober 2005 - 23:02 #14
Jep
Avatar billede apo Praktikant
07. oktober 2005 - 23:08 #15
*Tadaa* Jeg har fået det til at virke nu! Jeg havde lavet en dummefejl :-/

Takker for hjælpen :-)
Avatar billede apo Praktikant
07. oktober 2005 - 23:10 #16
// Lukker
Avatar billede olebole Juniormester
08. oktober 2005 - 01:18 #17
Tak for points  ;o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester