Oprettet tor. d. 14. april 2005 kl. 23:35:14

rour
rour (18.270 point. Point ude: 60)

Bestemme antal tegn pr. linje i textarea (tvungen linjeskift)

Jeg er ved at lave et info system, hvor man skal intaste noget i et tekstfelt. Det skal sidenhen sættes ind på en side hvor der er 4 linjer med 40 tegn i hver linje.

Jeg vil gerne ha det sådan, at når man indtaster i textareaet, så ser man direkte når man skifter linje. Det vil sige at hvis man taster over 40 tegn indsættes automatisk et linje skift, og curseren i textarea'et flytter sig ned til næste linje.

Er der nogen bud på hvordan man løser det?

Skrevet tor. d. 14. april 2005 kl. 23:45:21| #1

detox
detox (69.457 point)
Måske javascript?

Skrevet tor. d. 14. april 2005 kl. 23:46:07| #2

busschou
busschou (65.175 point)
ja javascript... ala
----
<HEAD>

<SCRIPT LANGUAGE="JavaScript">
<!--
function textCounter(field, countfield, maxlimit) {
if (field.value.length > maxlimit) // if too long...trim it!
field.value = field.value.substring(0, maxlimit);
// otherwise, update 'characters left' counter
else
countfield.value = maxlimit - field.value.length;
}
// End -->
</script>
</HEAD>
<BODY>

<center>
<form name=myform action="YOUR-SCRIPT.CGI">
<font size="1" face="arial, helvetica, sans-serif"> ( You may enter up to 160 characters. )<br>
<textarea name=message cols=40 rows=4 onKeyDown="textCounter(this.form.message,this.form.remLen,125);" onKeyUp="textCounter(this.form.message,this.form.remLen,125);"></textarea>
<br>
<input readonly type=text name=remLen size=3 maxlength=3 value="160"> characters left</font>
</form>
</center>

Skrevet fre. d. 15. april 2005 kl. 00:02:27| #3

rour
rour (18.270 point)
Tak for svar, men problemet med at skifte line blev ikke løst, curseren i tekstfeltet skifter ikke linje når der er indtastet over 40 tegn i linjen. Der er forskel på tegnenes brede, og derfor er det svært at benytte cols=40.

Skrevet fre. d. 15. april 2005 kl. 07:25:02| #4

busschou
busschou (65.175 point)
Følgende virker i FF
--------------------
<HEAD>

<SCRIPT LANGUAGE="JavaScript">
<!--
function textCounter(field, countfield, maxlimit) {
if (field.value.length == 40 || field.value.length == 81|| field.value.length == 122){
field.value = field.value+"\n";
}else if (field.value.length > maxlimit){
field.value = field.value.substring(0, maxlimit);
}else{
countfield.value = maxlimit - field.value.length;
}
}
// End -->
</script>
</HEAD>
<BODY>

<center>
<form name=myform action="YOUR-SCRIPT.CGI">
<font size="1" face="arial, helvetica, sans-serif"> (max 40 tegn i max 4 linjer)<br>
<textarea name=message cols=50 rows=4 onKeyDown="textCounter(this.form.message,this.form.remLen,163);" onKeyUp="textCounter(this.form.message,this.form.remLen,163);"></textarea>
<br>
<input readonly type=text name=remLen size=3 maxlength=3 value="163"> characters left</font>
</form>
</center>
---------------
I IE laver den et mellemrum og tæller derfor een mere
Overvej i øvrigt om "\n" skal tælle med i de 40 tegn?
For man kan ikke lave linjeskift uden det mindst fylder eet tegn
Du kan rimelig snildt selv rette i koden. Du kan se der sammenlignes med 40,81,122
Det er fordi linjeskiftet ikke tælles med i de 40 så der er 41 i hver linje. Det er også derfor størrelserne nederst på siden er 163

Skrevet fre. d. 15. april 2005 kl. 07:33:32| #5

busschou
busschou (65.175 point)
Jeg ved ikke hvorfor der er forskel på FF og IE på det punkt
Det virker som om FF tolker "\n" promte og rykker en linje ned hvorimod IE indsætter det og det på skærmen ligner et blanktegn indtil næste tegn indtastes.
Prøv evt og kopiere koden ind i javascript kategorien, for der er muligvis en som ved mere :o)
Et andet dillemma er hvis man skriver og så vil slette noget. Når man så når til et "\n" ja så bliver scriptet jo ved med at sætte den karakter ind. Derfor kan man ikke slette forbi den! Man kan heller ikke bare markere den linje man ønsker rette og så slette i den. Så snart man har slettet et tegn vil den danne en ny "\n" for enden.
Test lige selv og overvej mulighederne. Som sagt er der nok en i Javascript kategorien som ved mere. (da jeg godt kan se mit foreslag ikke er så godt)
--------
Men du kan lave et tjek i php når din form med dit textarea submittes og så give en fejlmeddelelse hvis det ikke stemmer overens.

Skrevet fre. d. 15. april 2005 kl. 07:58:27| #6

busschou
busschou (65.175 point)
Jeg tror denne løsning vil være bedre for dig:
----------
<HEAD>

<SCRIPT LANGUAGE="JavaScript">
<!--
function tjek(){
  var x = document.getElementsByName("message");
  var y = x[0].value.split('\n');
  if(y.length > 4){
    alert("Der må max være 4 linjer");
    return false;
  }else{
        for (i = 0; i < y.length; i++){
            if(y[i].length > 40){
                alert("Der må max være 40 tegn pr linje");
                return false;
            }
        }
  }
  return true;
}
// End -->
</script>
</HEAD>
<BODY>

<center>
<form name=myform action="#" onsubmit="return tjek()">
<font size="1" face="arial, helvetica, sans-serif"> (max 40 tegn i max 4 linjer)<br>
<textarea name=message cols=50 rows=4></textarea>
<input type=submit name=submit value=submit></input>
</form>
</center>

Skrevet fre. d. 15. april 2005 kl. 09:23:35| #7

rour
rour (18.270 point)
Jeg tror jeg vil oprette spørgsmålet i JavaScript sektionen som  busschou foreslår.
Løsningen med alert vinduet, er ikke så god synes jeg, da man jo stadig ikke kan se tekst ombrydningen på skærmen. Men tak for forsøget. Jeg har foresten brugt  busschous text counter så jeg vil gerne give point, lig trygt et svar...

Skrevet fre. d. 15. april 2005 kl. 09:33:27| #8

busschou
busschou (65.175 point)
jamen ok så og pøj pøj med det :o)

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Brugerliste med link til profil

Oprettet den 26. maj 2012 kl. 14.29
sayn giver 30 point for svar | Giv et svar »

php curl driller

Oprettet den 26. maj 2012 kl. 08.31
PHPnQrd giver 200 point for svar | Giv et svar »

Array i array

Oprettet den 25. maj 2012 kl. 08.32
sebster giver 60 point for svar | Giv et svar »



   




Tips & Tricks fra PC World

Teaser billede

Læserne: Her er vores værste it-indkøb

Det er ikke al it-udstyr, som er det rene guld. Her er nogle af læsernes skrækhistorier.


Anmeldelser fra PC World

Teaser billede

Test: Mobil med Ferrari-design - og en Trabant-motor

Motorola har begået endnu en smartphone med lækkert design og potentiale til at være blandt de bedste. Men den når ikke i mål. Se her hvorfor.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Sådan siger du farvel til Facebook

Læs her, hvordan du dropper Facebook og i stedet anvender nogle brugervenlige alternativer, så du stadig kan være social på nettet.


Nyheder fra Computerworld

Teaser billede

Galleri: De fedeste håndholdte gennem 40 år

Her har du de mest banebrydende håndholdte computere gennem alle tider.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger