Otra opción (porque a veces la aparición de un renglón puede deberse al flujo normal del texto en relación al ancho del contenedor y no sólo a los saltos de línea), sería calcular el alto total del área scrolleable sobre el alto de línea:
Código PHP:
<!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=utf-8" />
<title>Documento sin título</title>
<style>
textarea{ width:80px; height:50px; line-height:15px; font-size:12px;}
</style>
<script type="text/javascript">
function getCSS(o,prop){
if(window.getComputedStyle){
return document.defaultView.getComputedStyle(o,null).getPropertyValue(prop);
}else{
var re = /(-([a-z]){1})/g;
if (prop == 'float') prop = 'styleFloat';
if (re.test(prop)) {
prop = prop.replace(re, function () {
return arguments[2].toUpperCase();
});
}
return o.currentStyle[prop] ? o.currentStyle[prop] : null;
}
}
onload=function(){
var c=document.getElementById('area');
var cuantos=c.scrollHeight/parseInt(getCSS(c,'line-height'));
alert(cuantos);
}
</script>
</head>
<body>
<form action="" method="get"><textarea id="area" name="" cols="">Hah
Hahye hahye aye hahye
Om maam na pum imjya
Kothbiro
Ke luru do ketaa-lha
Om maam pum imjya
Kothbiro
Ke luru do ketaa-lha
Hah
Hahye hahye aye hahye
Om maam pum imjya
Kothbiro
Ke luru do ketaa-lha
Om maam na pum imjya
Kothbiro
Ke luru do ketaa-lha
ah
Hahye hahye hahye
Hah
Hahye hahye hahye
Yah yebi tom nuguee
Um kuru tili bare made
Kothbiro
Kem luru do ketaa-lha</textarea></form>
</body>
</html>