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?