23. februar 2003 - 01:42Der er
6 kommentarer og 1 løsning
linie nummerering af html tekstfelt
Kan jeg nummerere linierne i et html tekstfelt, således at jeg i en fejlbesked til brugeren kan referere til et linienummer? Jo, altså jeg kan jo hardkode tal i en kolonne ved siden af feltet, men har jeg andre muligheder? Problemet kompliceres jo bl.a. af at brugeren muligvis indtaster et input der har flere linier end tekstfeltet kan vise ad gangen.
Kun hvis du slår wrapping fra i feltet: <script type="text/JavaScript"> function checkTxt( f ) { var errMsg = ""; var txtA = f.t.value.split("\n"); alert( txtA.length ) for ( i=0; i<txtA.length; i++ ) { if (txtA[i].indexOf("bla")!=-1) { errMsg += "Kvaj ... du har skrevet 'bla' i linie " + (i+1) + "\n"; } } if ( errMsg!="" ) { alert( errMsg ); return false; } } </script>
<form onsubmit="return checkTxt(this)"> <textarea wrap="off" style="width:350px;height:100px;" name="t">Prøv at skrive nogle linier. Skriv ordet 'bla' i en af dem.</textarea> <button type="submit">TEST</button> </form>
Det var et meget sejt script, men ikke lige det jeg havde brug for. Når jeg evaluerer indholdet i tekstfeltet, har jeg ingen problemer med at få genereret fejlbeskeden (f.eks.: fejl i linie 18). Problemet er at det er svært for brugeren umiddelbart, at se hvad der er linie 18. Så hvordan kan jeg vise linienumre ved siden af inputtet uden at 1)inputtet
Det er en lidt skidt løsning, du har gang i ... den vil skabe flere problemer, end fordele :)
1. Hvilke browsere skal det kunne bruges i? 2. Hvilke typer fejl kan der være tale om? Prøv at give et eksempel eller to på noget, der defineres som værende en fejl. /mvh
OK, forklaringen er: abc er en tekstbaseret måde at notere musik (noder) på. Vha. af et lille kommandolinie program "abc2ps" genereres en postscriptfil med en flot node. Jeg er ved at lave et webinterface, så man uden at kende til abc2ps skal kunne indtaste sin abc-kode i et html-tekstfelt, og med "submit" få genereret en pdf-fil med noden. Problemet er så når brugeren indtaster ugyldig abc-kode. Jeg kan sagtens finde ud af at bringe fejl-beskeden fra abc2ps til brugeren (f.eks. "- line 11: Not enough words for lyric line"), men det er jo ikke særligt brugervenligt, idet han må tælle sig frem til linie 11. Eller værre: linie 52... Så tænkte jeg om det kunne lade sig gøre at sætte linienumre til venstre for et tekstfelt, på en måde så det holder uanset browser?
Man kunne vel pop'e et vindue op - eller dynamisk skrive teksten ind i et <div> - hvor fejlen er highlighted med gult. Det vil dog kræve, at jeg ved noget mere om, hvad fejlen kan bestå i.
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.