Page 1 sur 1

controler le nbr de lignes et de caractères d'un texte riche

MessagePublié: 05 Nov 2007 à 16:44
par azerty
le truc marche a merveille

j'ai mis la fonction dans l'entête JS

et l'appel de la fonction dans onfocus de chaque richtext dont je veux contrôler le nombre de lignes et de caractères

Code : Tout sélectionner
<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';
maxLines=4;
maxChar=35;
e1=nom_adr_benef;
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('You can not enter\nmore than '+maxLines+' lines');
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('You can not enter more\nthan '+maxChar+' characters per line')
}
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>



source => http://www.codingforums.com/archive/ind ... 71233.html

MessagePublié: 05 Nov 2007 à 16:51
par Michael DELIQUE
Yogi a écrit:ton code ne fonctionne que sous IE et utilise du vbscript, aussi je déconseille son utilisation

MessagePublié: 08 Nov 2007 à 15:28
par azerty
azerty a écrit:je sais que c seulement sous IE et pour la fonction VBscript je peux m'en passé.

je travaille seulement sous IE.
merci kumeme ;)