Word count in multiple textarea

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
 
T

Thomas 'PointedEars' Lahn

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">

Everything below this line is complete junk. You better rewrite
it, starting with a solution to your problem:

function countWords(s)
{
return s.match(/\b\w+\b/).length;
}

Note that if you use \b and \w+, that does not cover the various
ISO-8859-x/UCS word characters. (There is a nice definition in
the XML 1.1 Specification for name characters that you can make
use of.)


PointedEars
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,995
Messages
2,570,236
Members
46,825
Latest member
VernonQuy6

Latest Threads

Top