Avatar billede thb Nybegynder
15. januar 2005 - 16:41 Der er 14 kommentarer og
1 løsning

Count af tegn i textarea

Hej alle,

Jeg skal bruge en javascript funktion som tæller hvor mange tegn der er i et textarea.
Det er til at overkomme, selv for mig :D

Men hvad gør jeg ved [ENTER] ? Det er meget vigtigt at der kun bruges x antal tegn, og hvormeget fylder et ENTER ???
Teksterne skal skrives i textarea skal bruges til print, så det må ikke fylde udenfor papiret :)

Håber at I forstår

Thomas
Avatar billede roenving Novice
16. januar 2005 - 13:44 #1
Hvorfor tester du ikke bare med en online tæller, f.eks.

<textarea name="mitTextarea" id="mitTextarea" cols="40" rows="5" onkeyup="document.getElementById('minSpan').innerHTML=this.value.length;"></textarea>

<span id="minSpan">En span-tekst</span>

-- det skal medtages, at det er afhængigt af styresystem, så f.eks. i dos/windows er det to karakterer, mens det på andre platforme er een karakter !-)
Avatar billede thb Nybegynder
16. januar 2005 - 21:28 #2
Det var også det jeg ville... Men hvis man nu laver 4 [enter] så tæller den så 6 tegn, men på et print vil det måske tælle for 400 tegn....

Thomas
Avatar billede thb Nybegynder
22. januar 2005 - 17:42 #3
Jeg har brugt din løsning.... :D

Smider du ikke et svar... :D

Thomas
Avatar billede roenving Novice
24. januar 2005 - 09:55 #4
Velbekomme '-)
Avatar billede thb Nybegynder
24. januar 2005 - 10:10 #5
Hvad hvis jeg har x antal felter hvor antal af tegn skal findes i alle de felter... ??? Antallet af felter kommer ud fra dben, og der må kun være 1100 tegn i det hele...

Thomas
Avatar billede roenving Novice
24. januar 2005 - 10:25 #6
Så må du lave en funktion, som tæller, f.eks.

<script type="text/javascript">
function tael(f){
  var e = f.elements,nr = 0;
  for(i=0;e.length>i;i++){
    if(e[i].type=='textarea'&&e[i].name.indexOf('FELTNAVN')==0)nr += e[i].value.length;
  }
  document.getElementById('minSpan').innerHTML = nr;
  if(nr >= 1100)alert('Maksimalt 1100 tegn ialt !-)');
}
</script>

-- så skal textareas navngives, som 'FELTNAVN' angiver, feks.

<textarea name="FELTNAVN0" ... onkeyup="tael(this.form);"></textarea>
<textarea name="FELTNAVN1" ... onkeyup="tael(this.form);"></textarea>
<textarea name="FELTNAVN2" ... onkeyup="tael(this.form);"></textarea>

osv.
Avatar billede roenving Novice
24. januar 2005 - 10:25 #7
--- og tak for point ;~}
Avatar billede thb Nybegynder
24. januar 2005 - 10:43 #8
Det giver lidt et problem da mine felter har et bestemt navn, eller er det svært at gemme dem... De hedder måske: text_1, text_12, text_35 alt efter hvilket id de har i dben...
Avatar billede thb Nybegynder
24. januar 2005 - 10:44 #9
eller = ellers
Avatar billede roenving Novice
24. januar 2005 - 10:45 #10
Hvis det kun er nogle af felterne i en nummerfølge, må du lave en liste over dem ...

-- men de har vel kun et navn, som starter med f.eks. text_ hvis det er den rigtige slags felt ?-)

-- så kan du jo bare ændre bogstaverne 'FELTNAVN' i ovenstående eksempel til 'text_' !-)
Avatar billede thb Nybegynder
24. januar 2005 - 10:46 #11
Kunne man ikke lave et hidden felt hvor i jeg gemmer navnene på felterne ?
Og så køre den i gennem...
Avatar billede thb Nybegynder
24. januar 2005 - 10:47 #12
okay.. nice... Det gik ikke lige op for mig :D
Avatar billede thb Nybegynder
24. januar 2005 - 11:08 #13
Nu tror jeg at det lykkedes for mig... Tusind tak... :D

Thomas
Avatar billede thb Nybegynder
24. januar 2005 - 11:10 #14
Har det stadigvæk det problem som jeg havde helt fra starten... Men nu gider jeg ikke at koncentrere mig om det mere... Hvis en bruger trykker enter 20 gange så får han bare ikke noget tekst på sin side... Basta.. :D

Thomas
Avatar billede roenving Novice
25. januar 2005 - 09:58 #15
Du kan jo fjerne dem ?-)

Hvis det er windows, vil et linjeskift være \n\r og de kan så erstattes, f.eks.

  for(i=0;e.length>i;i++){
    txt = e[i].value.replace(/\n\r/gm,"");
    if(e[i].type=='textarea'&&e[i].name.indexOf('FELTNAVN')==0)nr += txt.length;
  }

-- evt. kan du sætte en erstatning ind, så du tæller det som een karakter !-)

-- vær opmærksom på, at ovenstående ikke ændrer værdien, kun bruger en mellemvariabel til optællingen !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