Avatar billede nemlig Professor
01. november 2010 - 12:33 Der er 8 kommentarer og
1 løsning

Javascript-funktion skal også afvikles med indlæsning af siden

Hejsa.
Jeg har et textarea, hvor man kan indtaste en SMS.
Jeg har noget javascript, som tæller antal indtastede tegn samt hvor mange SMS'ere det svarer til. Så langt så godt.

Uden at gå i for mange deltaljer, så kan textareaet have noget tekst i forvejen eller efter fx. Submit.
Lige nu virker tælleren først, når man står i input-feltet og skriver noget.
Jeg vil meget gerne, at den også tæller allerede ved indlæsning af siden.
Det er vel noget med window.onload som kalder en funktion.

Håber på noget konkret hjælp - derfor også en del point.

Koden herunder virker fint, men ikke ved window.onload.

<script type="text/javascript">
<!--
function taCount(vis,sms) {
    var maxLength= 459;
    var visCnt=document.getElementById(vis);
    var smsCnt=document.getElementById(sms);
    var taObj=document.getElementById("message");
    var txtlength = 0;
    var countdiff = 0;
    for (i=0;i < taObj.value.length;i++){
        a = taObj.value.charCodeAt(i);
        txtlength++;
        if (a == 10){ txtlength++; countdiff++; }
        if (a == 13){ txtlength--; countdiff--; }
    }
    maxLength = maxLength-countdiff;
    if (txtlength>maxLength*1) taObj.value=taObj.value.substring(0,maxLength*1);
    if (visCnt) {
        visCnt.innerHTML=txtlength;
        if (txtlength <= 160) {
            smsCnt.innerHTML= Math.ceil((txtlength / 160));
      } else {
            smsCnt.innerHTML= Math.ceil((txtlength / 153));
        }
    }
}
function use_sms() {
    var newsms = document.getElementById("usertxt").value;
    if(newsms != "") { document.getElementById("message").value = newsms; }
    taCount("numSign","numSms");
}
// -->
</script>


<table align="center" border="0" cellspacing="0" cellpadding="0">
    <tr>
        <td><textarea name="message" id="message" cols="53" rows="12" onkeyup="return taCount('numSign','numSms')" maxLength="459" style="width: 376px;">Her står allerede noget</textarea><br/></td>
    </tr>
    <tr>
        <td>
            <table width="100%" border="0" cellspacing="0" cellpadding="0">
                <tr>
                    <td><b><SPAN id="numSign">0</SPAN>/459</b> tegn i <B><SPAN id="numSms">0</SPAN></B> SMS.</td>
                    <td align="right"></td>
                </tr>
            </table>
        </td>
    </tr>
</table>
Avatar billede majbom Novice
01. november 2010 - 12:43 #1
<body onload="taCount('numSign','numSms')">


?
Avatar billede intenz Novice
01. november 2010 - 12:59 #2
Enig med #1.

Du kan også bruge javascript versionen, hvis du ikke vil skrive det direkte i body.

window.onload = function() {
  taCount('numSign','numSms');
}
Avatar billede nemlig Professor
01. november 2010 - 13:36 #3
Sejt I 2. Det fungerer. Splazz var hurtigst, så det er vel mest rimeligt, at jeg beder Splazz om et svar.
Men tak til begge. :)
Avatar billede majbom Novice
01. november 2010 - 13:43 #4
svar :)

det var nu mest fordi du havde skrevet at det ikke virkede med window.onload at jeg gjorde det på den måde...

hvordan havde du selv forsøgt dig med window.onload?
Avatar billede majbom Novice
01. november 2010 - 13:43 #5
og jeg prøver lige én gang mere...
Avatar billede nemlig Professor
01. november 2010 - 13:54 #6
#4 Jeg mente blot, at ovenstående kode virker, men ikke ved load af siden, da denne del ikke var kodet, og så gættede jeg bare, at der skulle anvendes noget windows.onload.
Avatar billede majbom Novice
01. november 2010 - 14:43 #7
jeg forstår følgende: Koden herunder virker fint, men ikke ved window.onload. som at koden virker, men du kan ikke få den til at afvikle den ved window.onload.

det er osse lige meget nu, hovedsagen er at det virker :)

tak for point.
Avatar billede nemlig Professor
01. november 2010 - 14:48 #8
Kan godt forstå forvirringen. Men det kører og tak endnu engang.
Avatar billede majbom Novice
02. november 2010 - 20:03 #9
selv tak :)
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