Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/03/2011, 03:07
Pastro75
 
Fecha de Ingreso: diciembre-2002
Mensajes: 17
Antigüedad: 21 años, 10 meses
Puntos: 0
Textarea que salta de linea a partir de unos caracteres.

Seria posible que dentro de un textarea, cuando se escriba en él,cuente los caracteres, y a partir de un numero predefinido salte de linea él solo.
A su vez cuente las lineas y a partir de un numero predefinido no deje saltar más avisandome.
Yo no sé de javascript, pero voy recopilando scripts.
Encontré uno muy util que puede servir:

Código HTML:
<html> 
<head> 
<title>Limit Textarea</title> 
<style type="text/css"> 
textarea{ 
width:400px; 
height:200px 
} 
</style> 
<script type="text/javascript"> 
var alert_title='Input Restriction'; 
function limitTextarea(el,maxLines,maxChar){ 
if(!el.x){ 
el.x=uniqueInt(); 
el.onblur=function(){clearInterval(window['int'+el.x])} 
} 
window['int'+el.x]=setInterval(function(){ 
var lines=el.value.replace(/\r/g,'').split('\n'), 
i=lines.length, 
lines_removed, 
char_removed; 
if(maxLines&&i>maxLines){ 
alert('No puede introducir mas de\n  '+maxLines+' lineas'); 
lines=lines.slice(0,maxLines); 
lines_removed=1 
} 
if(maxChar){ 
i=lines.length; 
while(i-->0)if(lines[i].length>maxChar){ 
lines[i]=lines[i].slice(0,maxChar); 
char_removed=1 
} 
if(char_removed)alert('No puede introducir mas de \n '+maxChar+' caracteres por linea') 
} 
if(char_removed||lines_removed)el.value=lines.join('\n') 
},50); 
} 
function uniqueInt(){ 
var num,maxNum=100000; 
if(!uniqueInt.a||maxNum<=uniqueInt.a.length)uniqueInt.a=[]; 
do num=Math.ceil(Math.random()*maxNum); 
while(uniqueInt.a.hasMember(num)) 
uniqueInt.a[uniqueInt.a.length]=num; 
return num 
} 
Array.prototype.hasMember=function(testItem){ 
var i=this.length; 
while(i-->0)if(testItem==this[i])return 1; 
return 0 
}; 
function set_ie_alert(){ 
window.alert=function(msg_str){ 
vb_alert(msg_str) 
} 
} 
</script> 
<script language="vbscript" type="text/vbs"> 
set_ie_alert() 
Function vb_alert(msg_str) 
MsgBox msg_str,vbOKOnly+vbInformation+vbApplicationModal,alert_title 
End Function 
</script> 
</head> 
<body> 

<textarea onFocus="limitTextarea(this,6,40)" wrap="off">some text</textarea> 
<textarea onFocus="limitTextarea(this,2,10)" wrap="off">some text</textarea> 
</body> 
</html> 
En este script avisa cuando llega a un numero de caracteres y avisa con los saltos de linea.¿ Se podría reemplazar los avisos que dá en cuanto a limite de caracteres por una función que salte de linea automáticamente?

Hay otro script que puede servir, creo. Hace que si se llama a esta función debería de saltar de linea:

Código:
function darIntro()
{
var tx = document.getElementById('txArea');
var te = String.fromCharCode(13);
tx.value += te;
}
//el textarea tiene que llevar el id de txArea
No sé como hacer que la función darintro actue en el primer script en vez de que salte el aviso. Tampoco sé si mi planteamiento esta errado.
Gracias de antemano.

Última edición por Pastro75; 27/03/2011 a las 03:30