Je viens vers vous pour un peu d'aide car j'ai du mal avec un script permettant de compter le nombre de caractères inscrit dans un textarea.
Je l'ai récupéré sur Internet, mais étant totalement novice en javascript, j'ai quelque peu du mal à en faire ce que je veux.
Voici le code en question que je voudrais appliquer sur trois textearea différents dans un même formulaire.
<!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=iso-8859-1" />
<title>Document sans titre</title>
<script type="text/javascript">
//trouvé sur: www.portugal-tchat.com//
var ns6=document.getElementById&&!document.all
function restrictinput(maxlength,e,placeholder){
if (window.event&&event.srcElement.value.length>=maxlength)
return false
else if (e.target&&e.target==eval(placeholder)&&e.target.value.length>=maxlength){
var pressedkey=/[a-zA-Z0-9\.\,\/]/
if (pressedkey.test(String.fromCharCode(e.which)))
e.stopPropagation()
}
}
function countlimit(maxlength,e,placeholder){
var theform=eval(placeholder)
var lengthleft=maxlength-theform.value.length
var placeholderobj=document.all? document.all[placeholder] : document.getElementById(placeholder)
if (window.event||e.target&&e.target==eval(placeholder)){
if (lengthleft<0)
theform.value=theform.value.substring(0,maxlength)
placeholderobj.innerHTML=lengthleft
}
}
//trouvé sur: www.portugal-tchat.com//
function displaylimit(thename, theid, thelimit){
var theform=theid!=""? document.getElementById(theid) : thename
var limit_text='<b><span id="'+theform.toString()+'">'+thelimit+'</span></b> characteres Maximum.'
if (document.all||ns6)
document.write(limit_text)
if (document.all){
eval(theform).onkeypress=function(){ return restrictinput(thelimit,event,theform)}
eval(theform).onkeyup=function(){ countlimit(thelimit,event,theform)}
}
else if (ns6){
document.body.addEventListener('keypress', function(event) { restrictinput(thelimit,event,theform) }, true);
document.body.addEventListener('keyup', function(event) { countlimit(thelimit,event,theform) }, true);
}
}
</script>
</head>
<body>
<table>
<form>
<tr>
<td width="50px">Truc1 </td>
<td><textarea name="description1" id="truc1" cols=50 rows=5 class="descr_add_site_annuaire"></textarea></td>
</tr>
<tr>
<td colspan="2"><script> displaylimit("","truc1",250) </script></td>
</tr>
<tr>
<td width="50px">Truc2 </td>
<td><textarea name="description2" id="truc2" cols=50 rows=8 class="descr_add_site_annuaire"></textarea></td>
</tr>
<tr>
<td colspan="2"><script> displaylimit("","truc2",400) </script></td>
</tr>
<tr>
<td width="50px">Truc3 </td>
<td><textarea name="description3" id="truc3" cols=50 rows=2 class="descr_add_site_annuaire"></textarea></td>
</tr>
<tr>
<td colspan="2"><script> displaylimit("","truc3",100) </script></td>
</tr>
</form>
</table>
</body>
</html>
Si vous faites le test chez vous en recopiant ce code, vous devriez vous apercevoir de quelque chose à l'utilisation.Lorsque vous remplissez le premier textarea, le décompte des caractères s'effectue bien (celui juste en dessous)
Par contre, si vous remplissez le second ou même le troisième textarea, le décompte ne s'effectue pas dans les script afficher juste en dessous d'eux mais toujours sur celui présent en dessous du premier textarea.
Quelqu'un pourrait il m'aider à savoir d'où cela peut-il venir?
Merci pour toute aide apportée à un pauvre newbie qui se lamente dans son coin