15. april 2005 - 10:54Der er
19 kommentarer og 2 løsninger
Bestemme antal tegn pr. linje i textarea (tvungen linjeskift)
Laver lige dette ? med lidt flere point.
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?
Jeg har ikke særlig meget erfaring i Javascript, så en forklaring for tumper vil være rart...
Well, tror ikke jeg er helt med, men hvis du benytter et tekstarea som i dette eksempel, så laver den automatisk linieskift.
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <script language="javascript" type="text/javascript">
function testFunction(areaObj, maxValue) { // maxValue sætte til 160 pga. 40 * 4 if(areaObj.value.length > maxValue) alert("Der må maksimalt være: " + maxValue + " i denne tekstboks!"); }
Det var oså det jeg troede jeg skulle, men textarea den er ikke precis. Der er forskel på breden af f.eks. et "l" og et "L" derfor virker det ikke rigtigt kun at definere max længden. Jeg vil kunne se hvilke tegne der er på hvilke linjer.
Det er et evigt tilbagevendende problem, og der er så vidt jeg ved ikke nogen fornuftig løsning. man kan indstille textarea til at lave hard ombrydning ved linieskift, men det funker vidst ikke helt...
hvad med bare at begrænse den til de 4 linier, for det kan man godt?
Prøv at beskriv helt præcist hvad og hvorfor du brug for det, for måske er der en måde omkring det eller en anden løsning.
Man kan ikke låse tekstområdet så man ikke kan komme ud over de 4 linier heller, men man kan klippe teksten der kommer ud over af, så man opnår begrænsningen på den måde.
Jeg skal senere sætte teksten ind i nogle felter, og der er 40 felter i hver linje. Derfor vil jeg gerne ha' at man også på skærmen kan se hvilke bogstaver/tegn der kommer til at stå på hvilke linjer.
Jeg tror det er praktisk taget umuligt..(intet er umulig men måske ret bøvlet)..at løse det tilfredsstillende for dig. Hvis det skal laves i javascript så skal der jo testes på onKeyDown og/eller på onKeyOp Det gør jo så at hvis man med musen copy/paster så fanger javascriptet det ikke
En alternativ løsning ville måske være at man laver 4 felter(1 felt for hver linje), hvor man putter sin tekst ind . I en sådan løsning ved jeg godt hvordan man tjekker om der er skrevet for meget i hvert enkelt felt, men hvad så hvis man prøve at paste en lang tekst ind? Er det for eksempel muligt at lade de første 40 tegn der står i feltet blive stående, og flytte resten til næste felt, og så fremdeles?
Hvem er det som skal taste ind? Ved godt hvad du ønsker.... men hvis der står at "her kan du indstaste max 40 pr linje og max 4 linjer" Så ville jeg nok selv synes det var nok med en advarsel bagefter hvis det ikke passede. Nå men jeg giver op med den "perfekte" løsning..hænger på hvis en skulle finde den :o)
Du skriver: Jeg skal senere sætte teksten ind i nogle felter, og der er 40 felter i hver linje. Derfor vil jeg gerne ha' at man også på skærmen kan se hvilke bogstaver/tegn der kommer til at stå på hvilke linjer.
Hvorfor er det nødvendigt? Man kan jo godt javascript hive de første 40 tegn ud og indsætte i et input felt så du kan se det, og så fremdeles med fra 40-80...
Det vil bare være så meget nemmere for brugerne hvis de mens de skriver, eller paster ind, kan se hvordan tekst ombrydningen vil være.
Men hvis du kan hjælpe mig til at lave 4 felter, hvor man kan paste ind. og man så tjekker om der er mere en 40 tegn, og hvis det er tilfældet så sætter det ind i næste felt. Så vil jeg acceptere det svar, nu hvor det ser ud til at det andet ikke kan lade sig gøre.
det bliver noget rod, og ikke særlig brugervenligt ville jeg mene.
Tekstombrydningen sker jo automatisk mens de taster i tekstområdet, og det vel samme ombrydning man skal benytte senere hen?
Man kunne måske have et lille billede, og hvis man holder musen over, hvis den hvordan tekstombrydningen for tekstområdet vil se ud, hvis man tager 40 bogstaver tegn råt pr. linie.
oki doki.. håber du finder en tilfredstillende fornuftig løsning trods alt :o)
Synes godt om
Ny brugerNybegynder
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.