T
trihanhcie
Hi
I have several textarea in the same page. I would like to count the
words in each textarea without any interaction with each other. Here's
the code I used for the count :
<script type="text/javascript">
/*Téléchargé sur Easy-Script.com (http://www.easy-script.com)
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
}
}
function displaylimit(thename, theid, thelimit){
var theform=theid!=""? document.getElementById(theid) : thename
var limit_text='<b><span
id="'+theform.toString()+'">'+thelimit+'</span></b> caractères
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>
This code works if there's only one textarea. If there's more than one,
the word count change in the first text area, not the second... How can
I fix that?
Here's a example :
<form name=form>
<textarea name="description" id="esp" rows="4" cols="22"
style="border: 1px double #B8C8FE; background-color: #0069B3; color:
#FFCC00;"></textarea>
<br>
<font face="verdana" size="2"
color="#B8C8FE"><script>displaylimit("","esp",250)</script><br></font>
<textarea name="description1" id="esp1" rows="4" cols="22"
style="border: 1px double #B8C8FE; background-color: #0069B3; color:
#FFCC00;"></textarea>
<br>
<font face="verdana" size="2"
color="#B8C8FE"><script>displaylimit("","esp1",250)</script><br></font>
</form>
As you can see, the id is different. But when I write words in the
second textarea, the text change in the 1st text area, not the second.
I'm completely lost because i've never learnt used Javascript... Can
anyone help plz?
Thanks
I have several textarea in the same page. I would like to count the
words in each textarea without any interaction with each other. Here's
the code I used for the count :
<script type="text/javascript">
/*Téléchargé sur Easy-Script.com (http://www.easy-script.com)
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
}
}
function displaylimit(thename, theid, thelimit){
var theform=theid!=""? document.getElementById(theid) : thename
var limit_text='<b><span
id="'+theform.toString()+'">'+thelimit+'</span></b> caractères
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>
This code works if there's only one textarea. If there's more than one,
the word count change in the first text area, not the second... How can
I fix that?
Here's a example :
<form name=form>
<textarea name="description" id="esp" rows="4" cols="22"
style="border: 1px double #B8C8FE; background-color: #0069B3; color:
#FFCC00;"></textarea>
<br>
<font face="verdana" size="2"
color="#B8C8FE"><script>displaylimit("","esp",250)</script><br></font>
<textarea name="description1" id="esp1" rows="4" cols="22"
style="border: 1px double #B8C8FE; background-color: #0069B3; color:
#FFCC00;"></textarea>
<br>
<font face="verdana" size="2"
color="#B8C8FE"><script>displaylimit("","esp1",250)</script><br></font>
</form>
As you can see, the id is different. But when I write words in the
second textarea, the text change in the 1st text area, not the second.
I'm completely lost because i've never learnt used Javascript... Can
anyone help plz?
Thanks