Je suis entrain d'intégrer dans le cadre d'un petit développement un javascript qui a pour objectif de décompter le nombre de caractères inscrit dans un champs de formulaire.
Pour un champs cela fonctionne parfaitement mais pour plusieurs j'ai des problèmes notamment dans le cadre de la gestion multilangue
A ce niveau, j'arrive bien à afficher le nbr de caractères en francais et en anglais. Mais :
Si je clique sur le champs en francais, cela décompte parfaitement
Si je clique dans le champs en anglais, ben le décompte se fait sur la partie du francais et non de l'anglais et ceux malgré la prise en compte de l'incrémentation $i
Le décompte est correct mais cela ne se fait pas en face du champs en conséquence.
Pourriez vous m'aider
Voici le script :
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
}
}
function displaylimit(thename, theid, thelimit){
var theform=theid!=""? document.getElementById(theid) : thename
var limit_text=' '+thelimit+' Max.'
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);
}
}
Avec JQuery ca se fait en tres peu de ligne de code :
var countChars = 0;
$.each($(':intput'), function (idx, fld)
{
countChars += fld.value.length;
}
);
La part exemple j'itere sur chaque element input de la page et j'ajoute la longeur de leur contenu. Tu devrai regarder sa aide enormement JQuery pour tout developpement en javascript