webForumDet fria alternativet

radnummer i textarea?

JavaScript

8 svar · 386 visningar · startad av greymane

Medlem sedan juli 2001711 inlägg
Frågan#1

kan man på ngt sätt få till radnummer i en textarea så man vet vilken rad man är på?`(som i en programmeringsmiljö)

Medlem sedan dec. 20025 483 inlägg
#2

Du kan göra det så här med JavaScript:

<head>

<script type="text/javascript">
<!--

var i=2;

function showRowNum(o){
	if(o.value.charAt(o.value.length-1)=="\u000A"){
		o.value += i+". ";
		i++;
	}
};

//-->
</script>

</head>

<body>

<textarea rows="" cols="" onkeyup="showRowNum(this)">1. </textarea>

</body>

:)

Medlem sedan juli 2001711 inlägg
#3

nja, det där funkade inte riktigt :) två saker:

1 radnummer får inte följa med i variabeln när formulärinfon skickas.

2 vid automatisk radbryt blir det inga nummer.

jag skulle kunna tänka mig nåt i stil med att man har ett textfield under textarean som visar vilken rad man befinner sig på. nån som vet hur eller har nåt bättre förslag?

Medlem sedan dec. 20025 483 inlägg
#4

Då prövar vi igen då:

<script type="text/javascript">
<!--

var total = 0;
var i = 1;

function showRowNum(o){
	total = o.value.length;

	total>=o.cols*i?i++:i=i;

	if(total <= o.cols*i && total > (i>1?o.cols*(i-1):0))
		document.f.num.value = "Rad nr: "+i;
};

//-->
</script>

<body>

<form name="f">

<textarea rows="15" cols="40" onkeyup="showRowNum(this);"></textarea>
<input type="text" name="num">

</form>

</body>

:)

Medlem sedan juli 2001711 inlägg
#5

nu börjar det likna nåt :) inte riktigt perfa än...

* den uppdaterar inte om jag sätter pekaren på en annan rad
* den uppdaterar inte om jag trycker på enter

hade varit kanongött om du kunde hjälpa igen! :)

Medlem sedan sep. 20021 655 inlägg
#6

Här är en lite förenklad och förbättrad version av Peters script (dock räknas enter inte som en ny rad):

<html>
<head>
<script type="text/javascript">
<!--

var total;

function showRowNum(o){
	rader=1;
	total = o.innerHTML.length;

	while(total>o.cols*rader){
            rader++;
	}
	document.f.num.value = "Rad nr: "+rader;
};

//-->
</script>
</head>

<body>

<form name="f">

<textarea rows="15" cols="40" onkeyup="showRowNum(this);" onkeydown="showRowNum(this);"></textarea>
<input type="text" name="num" value="Rad nr: 1" />

</form>

</body>
</html>
Medlem sedan juli 2001711 inlägg
#7

men jag saknar fortfarande uppdatering när jag sätter pekaren på en annan rad...
enter saknar jag också förståss..

jättetacksam om nån kunde greja biffen! :)

Medlem sedan juli 2001711 inlägg
#8

ingen som skulle kunna tänka sig o bjuda på ett extra handtag? Snälla? :)

Medlem sedan nov. 200013 890 inlägg
#9

Flyttar tråden till Javascript-forumet. ;)

262 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)