Avatar billede mesteren_selv Nybegynder
07. april 2005 - 09:20 Der er 8 kommentarer og
1 løsning

Max. antal tegn i textbox

Hej Folkens...

Jeg ville gerne kunne begrænse antallet af tegn det er muligt at indtaste i diverse form-felter, både text og textarea, således at man bare ikke kan indtaste flere efter man er nået til eksempelvis 20 tegn. Hvis jeg rigtig skulle flotte mig kunne jeg evt. lave en lille tæller, men det er måske javascript...

På forhånd tak, Il Maestro
Avatar billede steen_hansen Forsker
07. april 2005 - 09:28 #1
Du kan få et script, der virker (du skal selv rette det lidt til):

<% Const MaxLengthDescription = 2000 %>

<html>

<head>
<title>Tæl karakterer</title>
<script type="text/JavaScript" language="JavaScript">
function showLenDescription()
    { document.frmUser.countdowndescription.value = 2000 - document.frmUser.description.value.length }
</script>
</head>

<body>

<form name="frmUser" action="default.asp" method="post" style="margin: 0px;">
<textarea onkeydown="showLenDescription();" onkeyup="showLenDescription();" onchange="showLenDescription();" onfocus="showLenDescription();" onblur="showLenDescription();" name="description" rows="17" cols="63"></textarea></td>
<input type="text" style="width: 38px;" name="countdowndescription" readonly value="">
</form>

</body>

</html>
Avatar billede hammerhead Nybegynder
07. april 2005 - 09:28 #2
Brug evt. dette: maxlength="8"

<input type="text" maxlength="8" name="telefon" size="20">
Avatar billede steen_hansen Forsker
07. april 2005 - 09:29 #3
Glemte en <body onload...>

<% Const MaxLengthDescription = 2000 %>

<html>

<head>
<title>Tæl karakterer</title>
<script type="text/JavaScript" language="JavaScript">
function showLenDescription()
    { document.frmUser.countdowndescription.value = 2000 - document.frmUser.description.value.length }
</script>
</head>

<body onload="showLenDescription();">

<form name="frmUser" action="default.asp" method="post" style="margin: 0px;">
<textarea onkeydown="showLenDescription();" onkeyup="showLenDescription();" onchange="showLenDescription();" onfocus="showLenDescription();" onblur="showLenDescription();" name="description" rows="17" cols="63"></textarea></td>
<input type="text" style="width: 38px;" name="countdowndescription" readonly value="">
</form>

</body>

</html>
Avatar billede skyggen2000 Nybegynder
07. april 2005 - 11:15 #4
steen_hansen >> mangler du ikke selve begrænsningen. Dette er blot med tæller.

Måske burde den være lidt mere dynamisk også:) fx. tage en værdi med så man kan benytte den til forskellige felter.

Her er med begrænsning af tegn som et eksempel:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
</head>
<script language="javascript" type="text/javascript">

function testFunction(areaObj, maxValue)
{       
  // maxValue sætte til 150 pga. 25 * 6
    if(areaObj.value.length > maxValue)
    {
        areaObj.value = areaObj.value.substring(0, maxValue);
     
      alert("Der må maksimalt være: " + maxValue + " i denne tekstboks!");
    }
}   

</script>

<body>
    <textarea name="hejsa" cols="25" rows="6" onkeydown="testFunction(this,150);" style="overflow:hidden">noget tekst</textarea>   
</body>

</html>
Avatar billede steen_hansen Forsker
07. april 2005 - 12:06 #5
Nej, begrænsningen ligger i <% Const MaxLengthDescription = 2000 %> - skal bare omsættes til PHP. Hvis tælleren ryger under 0, skal det laves om. Og man kan sagtens benytte maxlength samtidig.
Avatar billede skyggen2000 Nybegynder
07. april 2005 - 12:31 #6
hvad vil du med server side? Det kan jeg ikke forstå. Er det ikke client side han ønsker sin begrænsning? Den skal begrænses inden den postes, som jeg har forstået det.

kan ikke se hvad du vil med <% Const MaxLengthDescription = 2000 %>, hvor er det i den kode du viser du benytter den til noget?
Avatar billede steen_hansen Forsker
07. april 2005 - 17:34 #7
Sorry, der skal selvfølgelig noget ind, der kontrollerer, om antallet af indtastede tegn er overskredet. Dette er som sagt lavet i ASP (VB-scripting), som du selv lige skal oversætte til PHP'sk:

<%
ElseIf Len(Request.Form("description")) > MaxLength Then
Response.Redirect "/error.asp?msg=Din+beskrivelse+indeholder+for+mange+tegn."
%>

PHP er vel serverside sprog, er det ikke, skyggen2000?
Avatar billede skyggen2000 Nybegynder
08. april 2005 - 09:22 #8
Jo det er det da, men igen tror jeg han leder efter en client side løsning, hvilket jeg også ville mene er det mest oplagte til hans problem. Nu må vi se hvad han siger til det.

Hvis du har begrænsningen server side, skal den runde serveren inden brugeren får besked om at alt hvad han har indtastet er noget rod. Det vil jeg ikke mene er den bedste løsning.
Avatar billede mesteren_selv Nybegynder
14. maj 2005 - 13:33 #9
ok... Jeg lukker!
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