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

Toutes les astuces sur le langage JavaScript dans Lotus Notes

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

Messagepar azerty » 05 Nov 2007 à 16:44

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
Avatar de l’utilisateur
azerty
Apprenti-posteur
Apprenti-posteur
 
Message(s) : 109
Inscrit(e) le : 10 Nov 2006 à 10:27
Localisation : Tour A

Messagepar Michael DELIQUE » 05 Nov 2007 à 16:51

Yogi a écrit:ton code ne fonctionne que sous IE et utilise du vbscript, aussi je déconseille son utilisation
Dernière édition par Michael DELIQUE le 08 Nov 2007 à 15:30, édité 1 fois.
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar azerty » 08 Nov 2007 à 15:28

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 ;)
Avatar de l’utilisateur
azerty
Apprenti-posteur
Apprenti-posteur
 
Message(s) : 109
Inscrit(e) le : 10 Nov 2006 à 10:27
Localisation : Tour A


Retour vers JavaScript