Avatar billede tommyls Nybegynder
16. maj 2002 - 14:22 Der er 6 kommentarer og
2 løsninger

max char

Hvordan checker jeg om et textarea ikke indeholder over 200 karakterer?

Hvis der er over 200, skal der komme en alertbox
Avatar billede ocp Nybegynder
16. maj 2002 - 14:31 #1
Hvorfor sætter du ikke bare maxlength=200?
Avatar billede nikolajdu Nybegynder
16. maj 2002 - 14:32 #2
Du kan gøre sådan her:

<html>
<head>
<SCRIPT>
<!--
function tael() {

    var maxChar = 5
    document.f.taeller.value--
    if (document.f.felt.value.length > maxChar) {
        diff=document.f.felt.value.length - maxChar;
        if (diff>1)
            diff = diff + " characters";
        else
            diff = diff + " character";
           
        alert("Her må du max skrive " + maxChar + "

karakterer\n" + "Slet venligst " + diff);
        document.f.felt.focus();
        return (false);
    }
}
//-->
</SCRIPT>
</head>

<body>
<form name="f">
<table>
<tr><td>
<TEXTAREA rows=5 cols=40 id=felt name="felt"

onkeyup="tael()"></TEXTAREA>
<br>
<input type="text" disabled name="taeller" value="280">
</td></tr>
</table>
</form>
</body>

</html>

/Nikolaj
Avatar billede z42cool Nybegynder
16. maj 2002 - 14:33 #3
<html>

<head>
    <script language="javascript">
        function checkLength(sender) {
            if (sender.value.length>200) {
                alert("Error");
                event.returnValue = false;
                return false;
            } else return true;
        }
    </script>
</head>

<body>
    <textarea onkeydown="checkLength(this);">
    </textarea>
</body>

</html>
Avatar billede z42cool Nybegynder
16. maj 2002 - 14:38 #4
Ovenstående skulle naturligvis have været et svar!

Nikolaj>> Der er flere problemer med din løsning. For det første fyrer onkeyup først når man løfter sin finger fra tasten og det er altså muligt at holde en tast nede og derved taste langt over det tilladte antal karakterer. For det andet vil dit tjek først forekomme efter at det tilladte antal er nået, f.eks. når tegn 201 ER skrevet i et felt der tillader 200. Ved at anvende onkeydown sker tjekket inden og man kan derfor kun få for mange tegn ind i feltet ved at paste dem ind, hvilket naturligvis kan fanges med en onchange handler!
Avatar billede nikolajdu Nybegynder
16. maj 2002 - 14:39 #5
I know - Det var bare lige hvad jeg havde liggende *LOL*
Avatar billede tommyls Nybegynder
16. maj 2002 - 14:43 #6
Der er en fejl ved den løsning fra z42kool:
Hvis man skriver over x antal karakterterer, kommer der en alertbox hver gang du trykker på en tast. Dette gør jo, at du heller ikke har mulighed for at slette din indtastning.

Alertboksen skal komme når du trykker submit istedet. Men hvordan så?
Avatar billede tommyls Nybegynder
16. maj 2002 - 14:46 #7
fixed
Avatar billede jakoba Nybegynder
16. maj 2002 - 15:03 #8
så skal du blot flytte testen oven i en onsubmit i din <form kommando:

<html>

<head>
    <script language="javascript">
        function checkLength(sender) {
            if (sender.value.length>200) {
                alert("Error");
                event.returnValue = false;
                return false;
            } else return true;
        }
    </script>
</head>

<body>
<form ... onsubmit="return checkLength(this.txarea);"

    <textarea name='txarea'>
    </textarea>

</form>
</body>

</html>
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