Avatar billede Slettet bruger
09. august 2002 - 17:58 Der er 3 kommentarer og
1 løsning

Antal tegn skal tælles...

Hej - jeg har lavet et system hvor brugere kan sende beskeder til andre brugere. De kan skrive en kort besked på et vist antal karakterer. For at hjælpe brugeren med at finde ud af hvor mange tegn han har tilbage har jeg strikket noget counter-sjov sammen:

          <script language=JAVASCRIPT>
// Udregn længde på besked
function messageLength( theForm ) {
  la = theForm.afsender.value.length
  lb = theForm.besked.value.length
  lc = la + 2
  total = lb + lc
  return total
}

//Opdater 'Characters left' felt
function updateCharsLeft( Subform ) {
  Maxcharacters = 129
  charsLeft = Maxcharacters - messageLength( Subform )
  Subform.charsLeft.value = charsLeft
}
</script>

Det jeg i den her forbindelse gerne vil spørge om er flg.: Når en bruger skriver enten "æ", "ø" eller "å" så laver systemet det efterfølgende om til "ae", "oe" og "aa". Det SKAL det gøre.

Det jeg ønsker er at når brugeren taster et "æ", "ø" eller "å" i tekst-feltet skal den tælle 2 karakterer ned - da de jo senere ændres til "ae", "oe" og "aa".

Nedenfor er koden til hhv. tekst-feltet og "antal-karakterer-tilbage"-feltet:

<textarea onKeyPress="updateCharsLeft(this.form)" onKeyUp="updateCharsLeft(this.form)" name="besked" cols="35" onChange="updateCharsLeft(this.form)" rows="6"></textarea>

<input onFocus=blur() size=4 name=charsLeft value="" maxlength="3">
Avatar billede Slettet bruger
10. august 2002 - 14:14 #1
Her (jeg har også opdateret funktionen lidt, så det nu rent faktisk ikke er muligt at skrive mere end 129 tegn i de to felter tilsammen:

<html>
<head>
<script language=JAVASCRIPT>
// Udregn længde på besked
function messageLength(theForm) {
  la = theForm.afsender.value;
  lb = theForm.besked.value;
  lc = la + lb;
  lc = lc.replace(/[æøå]/gi, "12");
  total = lc.length + 2;
  return total
}

//Opdater 'Characters left' felt
function updateCharsLeft(Subform, felt) {
  Maxcharacters = 129
  charsLeft = Maxcharacters - messageLength( Subform )
  if (charsLeft < 0) {
  felt.value = felt.value.substring(0, felt.value.length - 1);
  charsLeft = 0;
  }
  Subform.charsLeft.value = charsLeft
}
</script>
</head>
<body>
<form>
Afsender: <input type="text" name="afsender" onKeyUp="updateCharsLeft(this.form, this)"><br>
Besked: <textarea onKeyUp="updateCharsLeft(this.form, this)" name="besked" cols="35" rows="6"></textarea><br>
Tegn tilbage: <input size="4" name="charsLeft" value="127" maxlength="3" readonly>
</form>
</body>
</html>
Avatar billede Slettet bruger
11. august 2002 - 20:41 #2
Der SKAL være mulighed for at skrive mere end 129 felter. Brugeren kan vælge om den skal sendes som sms eller vises på siden (hvis det sidste er tilfældet må beskeden fylde lige så meget den vil)

Så - kun problemet med æ,ø,å ønskes rodet med :-)
Avatar billede Slettet bruger
12. august 2002 - 08:36 #3
Det er vel så egentligt bare

// Udregn længde på besked
function messageLength(theForm) {
  la = theForm.afsender.value;
  lb = theForm.besked.value;
  lc = la + lb;
  lc = lc.replace(/[æøå]/gi, "12");
  total = lc.length + 2;
  return total
}

der skal skiftes ?!
Avatar billede Slettet bruger
12. august 2002 - 15:00 #4
Ja, det er kun det så.
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