[JS] Textarea meerekken

Gestart doorWiitse4 reacties37 weergaven

5 berichten · pagina 1 van 1

Wiitse

Lid · Topicstarter

Berichten
6.722
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Hoe kan ik ervoor zorgen dat een textarea meerekt tijdens het typen? Niet horizontaal, maar verticaal. Ik heb via google gevonden dat om het horizontaal te doen dat het dan ongeveer zo is:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Blaat</title>
<style type="text/css">
textarea {
    overflow:hidden;
}
</style>
<script type="text/javascript">
function sizeBox(){
  if(document.getElementById(thebox).value.length > document.getElementById(thebox).cols){
    document.getElementById(thebox).cols = document.getElementById(thebox).value.length;
  }
}
</script>

</head>

<body>
<form>
<textarea id="thebox" cols="15" rows="5" onkeypress="sizeBox()"></textarea>
</form>
</body>
</html>


Ik weet alleen niet hoe je dit kunt ombouwen zodat er automatisch nieuwe rows bij komen. Hij moet ook meerekken als je een heel lang woord typt wat niet op de regel past. De bedoeling is in elk geval dat alle tekst die je typt zichtbaar is zonder scrollbar oid.


EDIT:// Ik ben nu al een heel eind, maar het laatste stukje lukt me niet. Dit is de code nu:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Blaat</title>
<style type="text/css">
textarea {
    overflow:hidden;
}
</style>
<script type="text/javascript">
function sizeBox(){
    var rows = document.getElementById(thebox).value.split("
");
    document.getElementById(thebox).rows = rows.length + 1;
    
    for(var i in rows) {
        if(rows[i].length > 15) {
            document.getElementById(thebox).rows = document.getElementById(thebox).rows + Math.round(rows[i].length / 15);
        }
    }
}
</script>

</head>

<body>
<form>
<textarea id="thebox" width="400px" rows="5" onkeypress="sizeBox()" onkeyup="sizeBox()"></textarea>
<div id="message"></div>
</form>
</body>
</html>


Het probleem is nu dat ik niet kan weten hoeveel tekens er in 1 regel passen. Dat verschilt namelijk per teken. Ik wil dat er alleen een nieuwe regel bij komt als de regel echt vol is. Hoe doe ik dat?
0
Fass

Lid

Berichten
3.771
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Een monospace font nemen?
0
Wiitse

Lid · Topicstarter

Berichten
6.722
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Fassdfds schreef:
Een monospace font nemen?
Is dat niet lelijk? De i even breed als de @. Dat is niet mooi.
0
Jef

Lid

Berichten
2.682
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Doe in de style.css bij jou content bij hoogte:auto;
0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Jef schreef:
Doe in de style.css bij jou content bij hoogte:auto;
hoogte = Height
En btw dat werkt niet emo
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren