Avatar billede nielsen2002 Nybegynder
01. november 2007 - 08:34 Der er 1 kommentar

Validering af tekst til et kort

Hej Eksperten,

Jeg har et textarea på en hjemmeside, hvor brugeren skal indtaste en tekst som han ønsker skal stå på et kort, kortet sendes efterfølgende med posten.

Kortets dimension tillader kun linier på max 36 tegn, og max 12 linier.

Jeg har fundet er script som næsten fungere.

function textCounter(theField,theCharCounter,theLineCounter,maxChars,maxLines,maxPerLine)
    {
   
        var strTemp = "";
        var strLineCounter = 0;
        var strCharCounter = 0;   

        for (var i = 0; i < theField.value.length; i++)
        {
            var strChar = theField.value.substring(i, i + 1);

            if (strChar == '\n')
            {
                strTemp += strChar;
                strCharCounter = 1;
                strLineCounter += 1;
            }
            else if (strCharCounter == maxPerLine)
            {
                strTemp += '\n' + strChar;
                strCharCounter = 1;
                strLineCounter += 1;
            }
            else
            {
                strTemp += strChar;
                strCharCounter ++;
            }
        }

        theCharCounter.value = maxChars - strTemp.length;
        theLineCounter.value = maxLines - strLineCounter;
       
       
           
        if (theLineCounter.value < 1) {
            TekstOk = false
            document.getElementById("KortErrorLines").style.display = "block";
            document.getElementById("KortErrorLines").innerHTML = "Der er kun plads til 12 linie på kortet.";
        } else {
            TekstOk = true
            document.getElementById("KortErrorLines").style.display = "none";
            document.getElementById("KortErrorLines").innerHTML = "";
        }
       
        if (theCharCounter.value < 0) {
            TekstOk = false
            document.getElementById("KortErrorLength").style.display = "block";
            document.getElementById("KortErrorLength").innerHTML = "Den indtastede tekst er for lang til kortet.";
        } else {
            if (TekstOk) {
                TekstOk = true;
            }
            document.getElementById("KortErrorLength").style.display = "none";
            document.getElementById("KortErrorLength").innerHTML = "";
        }       
    }

000000000000000000000000000000000000000

funktionen ligger som onkeyup event på mit tekst area.

problemet er at der ikke automatisk indsættes linieskift hvis en linie er længere end 36 tegn.

er der noget der har et foreslag, eller en bedre løsning?
Avatar billede nielsen2002 Nybegynder
01. november 2007 - 08:53 #1
Jeg fandt denne løsning her på sitet som jeg blev ret begejstret for: http://www.eksperten.dk/spm/716410 og som nærmest fungere perfekt til mit formål.

Jeg har blot brug for at brugeren også kan bruge Enter tasten for at lave et linie skift, gør man det nu tæller 'icol' ikke op.
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