Avatar billede moefelt Nybegynder
02. august 2002 - 07:26 Der er 15 kommentarer og
4 løsninger

max antal linier i et textarea

hey y'all

Hvordan laver jeg så man kun kan skrive x antal linjer i et <textarea>

Moefelt
Avatar billede notesguru Nybegynder
02. august 2002 - 08:07 #1
eks. <textarea maxlength="500">
Avatar billede limemedia Nybegynder
02. august 2002 - 08:16 #2
Man kan ikke tælle antal linier, men man kan tælle antal tegn

<script language="JavaScript" type="text/javascript">
<!--
    function checkcontent(str) {
        if (str.length > 5) alert ("hey hov du, begræns dig lidt !!! :o)");
    }
//-->
</script>

<form action="" name="testform" id="testform">
<textarea cols="40" rows="5" name="inputfield" onKeyUp="checkcontent(this.value)"></textarea>
</form>

i eksemplet vil der komme en fejlbesked op når du indtaster det 6'te tegn.

/ LJ
www.ljweb.com
Avatar billede Slettet bruger
02. august 2002 - 08:17 #3
notesguru> Prøv at teste dit svar. Man kan ikke sætte maxlength på textarea. Dene eneste vej er som ljweb foreslår.
Avatar billede notesguru Nybegynder
02. august 2002 - 08:18 #4
Jeg var lige lidt for hurtig, det var jo linier du ville checke på :-)
Avatar billede notesguru Nybegynder
02. august 2002 - 08:19 #5
el barto> Du har helt ret.
Avatar billede jonny Nybegynder
02. august 2002 - 08:22 #6
Prøv med den her.
-----------------------------------
<HTML>
<HEAD>
<TITLE>Untitled Document</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">

<script language="javascript">
<!--
    function AntalTegn(IntTegn)
    {
        if(Form1.Felt1.value.length>=Number(IntTegn))
        {
            alert('Der kan maksimalt skrives ' + IntTegn + ' tegn i dette felt.');
        }
    }
//-->
</script>

</HEAD>

<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
    <FORM NAME="Form1" METHOD="post" ACTION="">
        <TEXTAREA NAME="Felt1" COLS="80" ROWS="12" onKeyUp="AntalTegn(12);"></TEXTAREA>
    </FORM>
</BODY>
</HTML>
Avatar billede moefelt Nybegynder
02. august 2002 - 08:30 #7
hvad hvis man på en eller anden måde låser autoscroll, så man ikke kan skrive over størrelsen på <textarea>
Avatar billede limemedia Nybegynder
02. august 2002 - 08:32 #8
moefelt >> det kan man desværre ikke.
Avatar billede moefelt Nybegynder
02. august 2002 - 09:02 #9
god damnit !##¤%¤""%(&%/...

fuck asier ;-)
Avatar billede jakoba Nybegynder
02. august 2002 - 09:30 #10
man kan ret hurtigt tælle linierne, og så teste efter ljwebs recept:

<HTML>
<HEAD>
<TITLE>Untitled Document</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">

<script language="javascript">
<!--
    function antalLinier(intLinier) {
        var tmp = Form1.Felt1.value.replace( /\n/g, "" / );
        var tmp = Form1.Felt1.value.length - tmp +1; // antal linier.
        if( tmp>=intLinier ) {
            alert('Der må maksimalt skrives ' + IntTegn + ' linier i dette felt.');
        }
    }
//-->
</script>

</HEAD>

<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
    <FORM NAME="Form1" METHOD="post" ACTION="">
        <TEXTAREA NAME="Felt1" COLS="80" ROWS="12" onKeyUp="antalLinier(12);"></TEXTAREA>
    </FORM>
</BODY>
</HTML>

mvh JakobA
Avatar billede Slettet bruger
02. august 2002 - 09:43 #11
jakoba>> Ja, men hvis wrap'pen er sat til tekstombrydning, så tæller den jo stadig kun linjeskift!
Avatar billede Slettet bruger
02. august 2002 - 09:46 #12
Jeg ser kun denne end løsning, og den er ikke særlig fiks:

<html>
<head>
<script>
function test(ta) {
if (ta.scrollHeight > ta.offsetHeight)
ta.value = ta.value.substring(0, ta.value.length - 1);
}
</script>
</head>
<body>
<form>
<textarea cols="25" rows="5" onKeyUp="test(this);"></textarea>
</form>
</body>
</html>
Avatar billede Slettet bruger
02. august 2002 - 09:46 #13
end = ene
Avatar billede limemedia Nybegynder
02. august 2002 - 10:40 #14
phoenix >> at tilskrive ta.value virker ikke i Netscape og Mozilla - desværre
Avatar billede limemedia Nybegynder
02. august 2002 - 10:41 #15
Er problemet ikke at tælle hvor mange bogstaver der kan være på én linie, gange med antal linier og så voila ? Evt skifte min advarsel med "du er velkommen til at skrive videre, vi gemmer bare ikke dit indhold" - skrevet lidt mere diplomatisk selvfølgelig
Avatar billede Slettet bruger
02. august 2002 - 10:50 #16
Du vil aldrig være sikker på, hvor mange tegn, der kan være på en linje, medmindre du bruger en monospace font. Og hvordan skal et normalt linjeskift så tælles? Desuden har forskellige browsere forskellig tolkning af bredden på sådan er textarea.
Avatar billede limemedia Nybegynder
02. august 2002 - 10:54 #17
det vil altid blive et gennemsnit, men tilnærmelsesvist - specielt hvis der anvendes css og specifik størrelse.
Avatar billede jakoba Nybegynder
02. august 2002 - 10:58 #18
Øh... man kan da sagtens sige
    ta.value = ta.value.substring(0, ta.value.length - 1);
i Netscape, og slette sidste tegn på den måde.

wrap = 'physical' / 'logical' / 'none' er vel mest er spørgsmål om hvordan man ønsker at definere ordet linie. Som bruger af large fonts er jeg ikke meget for at definere linier i 'antal pixels høj'.

mvh JakobA
Avatar billede Slettet bruger
03. august 2002 - 15:19 #19
Dér må jeg nok være enig med jakoba. Ideelt må være at tælle antal faktiske linjeskift og måske også sætte en tegnbegrænsning på, så man ikke bare plaprer løs på én linje.
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