Toon posts:

Textarea maximaal aantal regels!

Pagina: 1
Acties:
  • 73 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik heb een vraag.. het gaat om het volgende. Ik ben bezig met een
editor waarbij ik mensen de mogelijkheid wil geven om hun text in
een textarea te typen. Het probleem is echter dat ik een maximaal
aantal regels aan wil geven, dus maxlength werkt niet :( ...

Nu heb ik wel scripts gevonden die het aantal regels telde, maar als
een regel afgebroken werd zagen ze dat nie als een nieuwe regel.

Het textkader mag een maximaal aantal tekens op een regel bevatten
en een maximaal aantal regels. Hopelijk kan iemand mij helpen! Het maakt
niet uit als het alleen werkt in IE...

Alvast bedankt ...

Verwijderd

Ik heb ff op google gezocht en vond deze meteen:

http://javascript.internet.com/forms/limit-textarea.html

kijk hier maar ff volgens mij wil je deze hebben!
Deze kijkt naar de hoeveelheid characters!

S6

EDIT:

Okey; ik denk ook dat je zelf een script moet schrijven; maar weet niet of je enters kan tellen, want als je door tikt gaat die vanzelf naar de volgende regel

[ Voor 29% gewijzigd door Verwijderd op 16-05-2003 13:38 ]


Verwijderd

Topicstarter
Hier heb ik helaas nix aan.. ik heb echt iets nodig die de regels telt.. want als ik 10 x op enter druk dan ziet hij dat als 10 characters

  • momania
  • Registratie: Mei 2000
  • Laatst online: 14:57

momania

iPhone 30! Bam!

Verwijderd schreef op 16 May 2003 @ 13:29:
Ik heb ff op google gezocht en vond deze meteen:

http://javascript.internet.com/forms/limit-textarea.html

kijk hier maar ff volgens mij wil je deze hebben!
Deze kijkt naar de hoeveelheid characters!

S6
Dat wil de TS nou net niet volgens mij.
Het gaat hier om een max aantal characters per regel en niet in totaal.
En dan ook nog een max aantal regels.

Daar zal je toch echt zelf een script voor moeten schrijven die op 'enters' etc checkt en zo het aantal regels bepaald en daarna per regel het aantal characters bepalen.

Waarom wil je het eingenlijk zo en is het maximaal aantal characters in totaal niet voldoende?

Dat gaat dus wel betekenen dat als je dat gaat doen dat het bij elke toetsaanslag gecontroleerd moet worden en dat is dan best een intensief proces.

[ Voor 19% gewijzigd door momania op 16-05-2003 13:35 ]

Neem je whisky mee, is het te weinig... *zucht*


Verwijderd

JavaScript:
1
2
3
4
5
6
7
8
function checkLengthOnKeyDown(lstMain, lngLimit) {
    if (event.keyCode != 8 && event.keyCode != 46 && event.keyCode != 37 && event.keyCode != 38 && event.keyCode != 39 && event.keyCode != 40) {
        if (lstMain.value.length >= lngLimit - 1) {
            event.cancelBubble = true;
            event.returnValue = false;
        }
    }
}


HTML:
1
2
3
<FORM NAME="myForm">
<TEXTAREA NAME="myTextArea" onKeyDown="javascript:checkLengthOnKeyDown(document.myForm.myTextArea, 100);"></TEXTAREA>
</FORM>


Bovenstaand JS en HTML gecombineerd geeft je een textarea met maximaal 100 characters.

Maar dat was geloof ik niet precies waar je naar op zoek was...

Er valt vast wel wat te doen met de keyCodes. Ik geloof dat keyCode 36 een carriage return is. Als je die nou eens gaat tellen... etc.

Succes!! :)

  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
Hmmz, toen ik de post van Fck las, kwam ik op het volgende idee..

Volg het idee van Fck om bij iedere toetsaanslag het aantal tekens te tellen.. Als je dan bijvoorbeeld een limiet van 30 tekens per regel aanhoudt (kleiner dan de breedte van je textarea), dan laat je na ieder veelfout van 30 een return/linebreak invoegen op de huidige positie van de cursor. Als je dan uiteindelijk het totaal aantal returns/linebreaks telt, heb je het aantal regels..

Misschien maak ik ergens nog wat denk foutjes, maar ik hoop dat je er wat mee kan

edit:
even over de scriptjes die worden gepost, volgens mij is de topicstarter niet op zoek naar een scriptje om zijn aantal ingevoerde tekens te limiteren :?

[ Voor 19% gewijzigd door r0bert op 16-05-2003 13:51 ]


  • BasSpruit
  • Registratie: September 2002
  • Laatst online: 09-04-2022
in de head:
JavaScript:
1
2
3
<script language="JavaScript" type="text/javascript">
function textCounter(field, maxlimit) { if (field.value.length > maxlimit) field.value = field.value.substring(0, maxlimit); }
</script>


in je textarea tag:
JavaScript:
1
onKeyDown="textCounter(this.form.veld,400);" onKeyUp="textCounter(this.form.veld,400);"

  • momania
  • Registratie: Mei 2000
  • Laatst online: 14:57

momania

iPhone 30! Bam!

Dit is dus hetzelfde als de maxlenght parameter invullen bij de textarea tag.
Is dus weer alleen voor een max aantal characters in totaal

TS wil per regel max aantal characters en in geheel een max aantal regels

Neem je whisky mee, is het te weinig... *zucht*


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

momania schreef op 16 May 2003 @ 13:54:
[...]

Dit is dus hetzelfde als de maxlenght parameter invullen bij de textarea tag.
Is dus weer alleen voor een max aantal characters in totaal

TS wil per regel max aantal characters en in geheel een max aantal regels
Idd, nog steeds vinden mensen het moeilijk om te lezen .... :?

Maarre momania: Textarea is volgens mij het enige wat geen maxlength kent ;)
r0bert schreef op 16 May 2003 @ 13:49:
Volg het idee van Fck om bij iedere toetsaanslag het aantal tekens te tellen.. Als je dan bijvoorbeeld een limiet van 30 tekens per regel aanhoudt (kleiner dan de breedte van je textarea), dan laat je na ieder veelfout van 30 een return/linebreak invoegen op de huidige positie van de cursor. Als je dan uiteindelijk het totaal aantal returns/linebreaks telt, heb je het aantal regels..

Misschien maak ik ergens nog wat denk foutjes, maar ik hoop dat je er wat mee kan
Je mist hierbij wel de handmatige enters, toch ?

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Verwijderd

Topicstarter
Ik heb al een script gemaakt met keycodes maar ik pruts nog wel ff verder.., want misschien heb ik daar wel een fout gemaakt..

  • André
  • Registratie: Maart 2002
  • Laatst online: 19-08 12:30

André

Analytics dude

Je kunt natuurlijk gewoon een aantal <input type="text"> onder elkaar zetten. Dan kun je die met maxlength beperken, en als je maar 7 regels wil zet je er 7 onder elkaar.

Je kunt met css de borders en andere dingen weghalen zodat het 1 textarea lijkt. En met javascript kijk je of je aan het einde van een regel bent, zo ja dan doorsturen naar volgende input.

Verwijderd

Topicstarter
jah daar heb ik ook aan gedacht..., maar is er geen javascript oplossing.. zou dit namelijk wel een beetje jammer vinden

  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
BtM909 schreef op 16 May 2003 @ 13:57:
Je mist hierbij wel de handmatige enters, toch ?
Waarom dat ? Die kun je toch gewoon meenemen met het controleren ?

  • BasSpruit
  • Registratie: September 2002
  • Laatst online: 09-04-2022
André schreef op 16 May 2003 @ 13:59:
Je kunt natuurlijk gewoon een aantal <input type="text"> onder elkaar zetten. Dan kun je die met maxlength beperken, en als je maar 7 regels wil zet je er 7 onder elkaar.

Je kunt met css de borders en andere dingen weghalen zodat het 1 textarea lijkt. En met javascript kijk je of je aan het einde van een regel bent, zo ja dan doorsturen naar volgende input.
er staat hiervoor zelfs een script voor onder DHTML op www.w3schools.com is maar 1 of 2 regels.

Verwijderd

Topicstarter
Hier heb ik nix aan want je kunt het aantal regels veranderen, en dat is niet interessant voor mij ik wil het maximaal aantal regels vaststellen

  • André
  • Registratie: Maart 2002
  • Laatst online: 19-08 12:30

André

Analytics dude

Kijk dan naar mijn oplossing. Daar staat het aantal regels vast!

  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
Ik ben ook even aan het prutsen:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<script language="JavaScript" type="text/javascript">
function fnCountLines(strTekst, intMaxChars)
{
    var intRegels   = 0;
    
    while (strTekst.length > intMaxChars)
    {
        intRegels++;
        strTekst = strTekst.substr(intMaxChars, strTekst.length);
    }
    
    return new Array(intRegels, strTekst.length);
}

function fnCheckLines(objTxa, intMaxChars, intMaxLines)
{
    var intRegels   = new Array();
    
    intRegels   = fnCountLines(objTxa.value, intMaxChars);
    intCharsLeft    = intMaxChars - intRegels[1];
    
    if (intRegels[0] >= intMaxLines) alert('invoer annuleren, met return false ofzo? :S');
    if (intCharsLeft == 0) objTxa.value += '\n';    
}
</script>

HTML:
1
<textarea onKeyUp="fnCheckLines(this, 30, 5);" cols="40" rows="7"></textarea>

Alleen
- worden manuele enter nog niet meegetelt
- wordt de invoer nog niet geannuleerd (hoe?)
- kan je nog knippen/plakken/slepen geloof ik (probleempje met linebreaks invoegen)

edit:
is er iemand die de chars weet voor een enter in een textarea :? iig geen
- <br> of <br />
- \n of \r\n of \n\r
- %0D%0A of %0D
:?

[ Voor 23% gewijzigd door r0bert op 16-05-2003 17:02 ]


Verwijderd

Topicstarter
Euh ik geloof gewoon \n hoor... Ik ben zelf ten einde raad maar eens naar de oplossing van Andre aan het kijken.. en daar zitten helaas ook een aantal nadelen aan.. :(

Ik heb het zo gemaakt dat ie checkt op backspace enzo.. dat werkt allemaal prima.. maar copy paste werkt niet :S.. enne.. stel je het volgende voor:

regel1: Hallo blaat
regel2: Piet jan henk

nou ga ik achter blaat een tekst typen.. als de regel zijn maximale
aantal karakters bereikt heeft gaat hij naar de volgende regel.. dan
typt ie verder voor Piet jan henk......, tot die regel vol is en dan zou
eigenlijk piet jan en henk naar de volgende regel door moeten schuiven

beetje lastig uitgelegd misschien.. maar tis toch een behoorlijk nadeel ten
opzicht van de textarea

  • André
  • Registratie: Maart 2002
  • Laatst online: 19-08 12:30

André

Analytics dude

Let op, de oplossing:
JavaScript:
1
2
3
4
5
6
7
<script language="javascript">
  function Check()
  {
    Temp = Veld.value;
    Veld.value = Temp.substr(0, Temp.length - 2);
  }
</script>

HTML:
1
<textarea name="Veld" rows="6" cols=10" onscroll="Check()"></textarea>

Dit is even snel en vies gecoded, maar met het gebruik van het onscroll event is het dus mogelijk. _/-\o_

[ Voor 17% gewijzigd door André op 16-05-2003 15:35 ]


Verwijderd

Topicstarter
top! thnx...! dit moet het zijn!

  • Boogie
  • Registratie: Januari 2001
  • Laatst online: 24-04 04:51
http://javascript.internet.com/forms/limit-textarea.html levert ook een hele mooie oplossing voor het aantal characters!

  • coubertin119
  • Registratie: Augustus 2002
  • Laatst online: 20-08 15:43
1. Die URL is al eens gepost, en hij bleek niet de juiste oplossing te bevatten.
2. Waarom schop je hier dit topic voor?

Skat! Skat! Skat!


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 20:27

crisp

Devver

Pixelated

oude }:O

Intentionally left blank

Pagina: 1

Dit topic is gesloten.