Lo más utilizado y recomendado es como dijo tunait, controlar el número de caracteres en vez de número de líneas.
Este código que te pondré te podría complicar más, pero puede resolverte si es urgentísima la situación.
En
IE:
Código:
<html>
<head>
<title>blah</title>
<script language="javascript">
//Desarrollado por: J. Markus
//Adaptado por: I. Y. Cruz
//06/2002
function mitodo(textarea,maxlength, maxLines)
{
var elinput = textarea.value;
var largo = elinput.length;
var dlineas = elinput.split("\n");
var nlineas = dlineas.length;
var lineaactual = eval(parseInt(dlineas.length)-1);
var string = dlineas[lineaactual];
var elultimo = string.charAt(eval(largo-1));
var elanterior = "";
if (nlineas > maxLines){
lineaactual = maxLines;}
for(var i=0;i<lineaactual;i++){
elanterior +=dlineas[i];}
var keyCode = document.layers ? event.which : event.keyCode;
if (keyCode==13){
if (dlineas.length >= eval(maxLines+1)){
textarea.value = elinput.substr(0, eval(largo-2));
textarea.value = elanterior.substring(0,eval(elanterior.length-1)); }
else {
return true; }
}
if (string.length > maxlength - 1)
textarea.value = elanterior +string.substr(0, maxlength);
return;
}
</script>
</head>
<body>
<form name="miforma">
<textarea name="nombredetextarea" cols="40" rows="4" onkeyup="javascript:mitodo(nombredetextarea,30,3);"></textarea><br>
</form>
</body>
</html>
Nota: La palabra
javascript va junta, la puse en roja para que el foro no la separara. El textarea está imitado a
3 líneas en un textarea de 4 y cada una tiene límite de
30 caracteres . Puedes escribir el límite que deseas. Repito...en mi opinión también, más utilizado, estético, llevadero y conocido es restringir el número de caracteres en vez del num. de líneas.